2015-04-05 6 views
0

Я пытаюсь получить изображение из базы данных доступа с помощью ListBox выберите событиеПолучить изображение в PictureBox из базы данных доступа

Я использовал следующий код для сохранения данных в базу данных:

command.CommandText = "insert into EmployeeInfo (FirstName,LastName,Pay,Pic) values ('" + txt_fname.Text + "' , '" + txt_lname.Text + "' , '" + txt_pay.Text + "' , @productpic)"; 
      MemoryStream stream = new MemoryStream(); 
      pb1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); 
      byte[] pic = stream.ToArray(); 
      command.Parameters.AddWithValue("@productpic", pic); 

И I Я извлечение данных, используя следующий код:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      connection.Open(); 

      OleDbCommand command = new OleDbCommand(); 
      command.Connection = connection; 
      string query = "select * from EmployeeInfo where FirstName = '" + listBox1.Text +"'"; 
      command.CommandText = query; 
      OleDbDataReader reader = command.ExecuteReader(); 
      while (reader.Read()) { 
       list_fname.Text = reader["FirstName"].ToString(); 
       list_lname.Text = reader["LastName"].ToString(); 
       list_dob.Text = reader["DoB"].ToString(); 
      } 
      connection.Close(); 
     } 

Теперь то, что я пытаюсь сделать то, что, чтобы получить изображение, связанное с каждой строкой, имя поля Pic в pictureb ox и показать его в цикле while с другими данными. Я видел несколько вопросов, заданных другими, но каждый использует datagridview для извлечения данных, где в моем случае я пытаюсь сделать это внутри события выбора списка.

Любая помощь была бы высоко оценена. Заранее спасибо .

+0

См этого http://stackoverflow.com/a/2217617/4059942 –

+0

я понял, решение. Благодарю . –

+0

Тогда добавьте свое решение здесь в качестве ответа, чтобы другие пользователи могли его найти позже. – Marco

ответ

0

Вызывается эта функция в цикле, в то время как ListBox выбора событие:

void loadpicture() 
      { 


       OleDbCommand command = new OleDbCommand(); 
       command.Connection = connection; 
       command.CommandText = "select pic from EmployeeInfo where FirstName = '" + listBox1.Text + "'"; 
       OleDbDataAdapter da = new OleDbDataAdapter(command); 
       DataSet ds = new DataSet(); 
       da.Fill(ds); 
       byte[] content = (byte[])ds.Tables[0].Rows[0].ItemArray[0]; 
       MemoryStream stream = new MemoryStream(content); 
       pb1.Image = Image.FromStream(stream); 

      } 
Смежные вопросы