Caixa de imagem para matriz de bytes

Eu tenho um programa para selecionar uma imagem e definir essa imagem selecionada em uma caixa de imagem, em seguida, converter a imagem na caixa de imagem em matriz de bytes e salvar a base de dados do servidor sql em uma coluna de tipo de imagem.

No botão Procurar, clique no evento. Estou selecionando o arquivo de imagem assim.

OpenFileDialog fop = new OpenFileDialog();
fop.InitialDirectory = @"Desktop";
fop.Filter = "image files|*.jpg;*.png;*.gif";
if (fop.ShowDialog() == DialogResult.OK)
{
     FileStream FS = new FileStream(@fop.FileName, FileMode.Open, FileAccess.Read);  
     pbPartySymbol.Image = new Bitmap(fop.FileName);
     MessageBox.Show("Image Imported Successfully!!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Depois de selecionar a imagem e defini-la como imagem da caixa de imagem, estou convertendo a imagem da caixa de imagem para matriz de bytes no evento save do botão Salvar e salvando a matriz de bytes no banco de dados.

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    return ms.ToArray();
}

Estou chamando o método assim.

byte[] myArr1 = imageToByteArray(pbPartySymbol.Image);

e estou passando essa matriz de bytes para o banco de dados. e salva também. MasTUDO as imagens adicionadas são salvas da seguinte forma. * 0x53797374656D2E427974655B5D * As imagens salvas não podem voltar à caixa de imagem na operação de leitura. O que estou fazendo de errado noECONOMIA?

Aqui está o que eu faço ao salvar a operação no formulário.

            Party ptObj = new Party(myArr1);
            if (new PartyOP().saveParty(ptObj))
            {
                MessageBox.Show("NEW data added");
            }

Na minha camada de operação comercial, esse é o meu código.

          public Boolean saveParty(Party ptObj)
         {
          string query1 = "EXEC insertToParty'" + ptObj.PTSymARR + "'";
           return (new DataAccessLayer().executeNonQueries(query1));
        }

Aqui está como eu configurei a propriedade na classe Party.

class Party
{
    public Party() { }
    public Party(byte[] ptSym) 
    {

        this._PTSymARR = ptSym;

    }
    public byte[] PTSymARR
    {
        get { return _PTSymARR; }
        set { _PTSymARR = value; }
    }


}

aqui está o meu procedimento armazenado. CRIAR PROCEDIMENTO insertToParty (@ptSymbol image) COMO INICIAR INICIAR A TRANSAÇÃO CONFIGURAR NOCOUNT ON; - Consulta INSERIR EM VALORES DE PARTIDA (PTSYM) (@ptSymbol);

O tipo de dados PTSYM é do tipo imagem.

questionAnswers(1)

yourAnswerToTheQuestion