2015-09-21 2 views
1

Мне нужна помощь. Я использовал ретранслятор данных для отображения значений из базы данных, все столбцы отображают значения в текстовых полях на повторителе, за исключением изображения. Am не в состоянии преобразовать байт обратно в изображение вот мой код для сохранения в базе данныхретранслятор данных не отображается изображение

private void btnSave_Click(object sender, EventArgs e) 
{ 
    byte[] imageBt = null; 
    FileStream fstream = new FileStream(this.txtImgPath.Text,FileMode.Open,FileAccess.Read); 
    BinaryReader Br = new BinaryReader(fstream); 
    imageBt = Br.ReadBytes((int)fstream.Length); 
    // byte[] pic = stream.ToArray(); 
    try 
    { 
     conDB.Open(); 
     OleDbCommand command = new OleDbCommand(); 
     command.Connection = conDB; 
     command.CommandText = "insert into abaanaCC (CCSpn_CODE,CCFname,CCLname,CCMname,CCDOB,CCgender,CCSchool,CaClass,CCVillage,CCSiblings,CCGuardian,CCContact,CCImage)" + 
       " values ('" + spn_codetxt.Text + "','" + txtfname.Text + "','" + lnametxt.Text + "','" + mnametxt.Text + "','" + DOBDTPicker1.Text + "','" + gendercomboBox.Text + "','" + schtxt.Text + "','" + classcomboBox.Text + "','" + villatxt.Text + "','" + siblingscombobx.Text + "','" + guardiantxt.Text + "','" + contacttxt.Text + "',@IMG) "; 
     command.Parameters.Add(new OleDbParameter("@IMG",imageBt)); 
     //command.Parameters.AddWithValue("@IMG",pic); 
     command.ExecuteNonQuery(); 
     MessageBox.Show("Record Saved"); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Unable to save" + ex); 
    } 
    conDB.Close(); 
} 

то для ретранслятора данных

private void Update_Load(object sender, EventArgs e) 
    { 
     // TODO: This line of code loads data into the 'abaanaDataSet.abaanaCC' table. You can move, or remove it, as needed. 
     this.abaanaCCTableAdapter.Fill(this.abaanaDataSet.abaanaCC); 
     int c = this.abaanaDataSet.abaanaCC.Rows.Count; 
     if (c > 0) ; 
     { 
      byte[] mydata = new byte[0]; 
      mydata = (byte[])(this.abaanaDataSet.abaanaCC.Rows[c-1]["CCImage"]); 
      MemoryStream stream = new MemoryStream(mydata); 
      cCImagePictureBox.Image = Image.FromStream(stream); 

     } 

}

+0

Пожалуйста, добавьте сообщения об ошибках или журналы, так будет проще помочь вам. Благодаря! – acostela

+0

По-видимому, когда я отлаживаю, я не получаю сообщений об ошибках, все работает просто отлично, за исключением того, что изображение не появляется в окне изображения на ретрансляторе данных. –

+0

Теперь я получаю ошибку: нет строки в позиции 14 –

ответ

0

Убедитесь, что вы на самом деле получить достоверные данные изображения из вашего набора данных. Это должно работать:

private void Form3_Load(object sender, EventArgs e) 
{ 
    this.productPhotoTableAdapter.Fill(this.adventureWorks2014DataSet.ProductPhoto); 

    byte[] mydata = (byte[])this.adventureWorks2014DataSet.ProductPhoto[100]["LargePhoto"]; 
    MemoryStream stream = new MemoryStream(mydata); 
    pictureBox1.Image = Image.FromStream(stream); 
} 

enter image description here

+0

Да, я получаю правильные изображения в наборе данных, но они не появляются в окне изображения в элементе управления ретранслятора данных –

+0

Откуда вы знаете, что это действительное изображение? – jsanalytics

+0

Вы можете отображать изображение в окне изображения вне ретранслятора данных? – jsanalytics