Нужна помощь для C#, связанного с datagridview
вот мое имя базы данных под названием emp
у меня есть одно поле pic datatye это изображение
я создал кнопки под названием UPLOAD, SAVE, DISPLAY-при нажатии кнопки UPLOAD изображение загружается в picturebox. при нажатии кнопки Сохранить изображение сохраняется в базе данных под названием emp -- & gt; изображение хранится в виде & lt;двоичного файла>...Но при нажатии кнопки DISPLAY изображение из базы данных отображается в DATAGRIDVIEW ...
Но мне нужна помощь в datagridview
при щелчке по любой ячейке datagridview изображение из datagridview должно появиться в моем PICTUREBOX
это код для загрузки изображения в c#
try { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "png files(*.png)|*.png|jpg files(*.jpg)|*.jpg|All files(*.*)|*.*"; if (dlg.ShowDialog() == DialogResult.OK) { imgLoc = dlg.FileName.ToString(); picEmp.ImageLocation = imgLoc; } } catch (Exception ex) { MessageBox.Show(ex.Message); }
это код сохранения / вставки изображения
try { byte[] img = null; FileStream fs = new FileStream(imgLoc, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); img = br.ReadBytes((int)fs.Length); string sql = "INSERT INTO emp values(@img)"; if (con.State != ConnectionState.Open) { con.Open(); cmd = new SqlCommand(sql,con); cmd.Parameters.Add(new SqlParameter("@img",img)); int x = cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("SAVED SUCESSFULLY"); } } catch (Exception ex1) { con.Close(); MessageBox.Show(ex1.Message); }
это код отображения при нажатии кнопки отображения изображение извлекается из базы данных в datagridview
string qry = "select * from emp"; cmd = new SqlCommand(qry,con); da = new SqlDataAdapter(cmd); dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; //dataGridView1.RowTemplate.Height = 500; foreach (DataGridViewRow row in dataGridView1.Rows) { row.Height = 300; } DataGridViewImageColumn image = new DataGridViewImageColumn(); image = (DataGridViewImageColumn)dataGridView1.Columns[0]; image.ImageLayout = DataGridViewImageCellLayout.Stretch;
теперь мне нужен код, как отобразить изображение из datagridview в мой picturebox onclick определенной выбранной строки
это код, но он не работает должным образом, Пожалуйста, кто-нибудь предоставьте мне работающий код
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //picEmp.ImageLocation = dataGridView1.Rows[1].Cells[0].Value.ToString(); foreach (DataGridViewRow row in dataGridView1.Rows) { DataGridViewRow = dataGridView1.Rows[3]; byte[] data = row.Cells["pic"].Value as byte[]; if (data != null) { MemoryStream ms = new MemoryStream(data); picEmp.Image = Image.FromStream(ms); } } }
Что я уже пробовал:
now i need code how to show up the image from datagridview to my picturebox onclick of particular selected row this is the code but not working properly pls anyone provide me the running code <pre>private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //picEmp.ImageLocation = dataGridView1.Rows[1].Cells[0].Value.ToString(); foreach (DataGridViewRow row in dataGridView1.Rows) { DataGridViewRow = dataGridView1.Rows[3]; byte[] data = row.Cells["pic"].Value as byte[]; if (data != null) { MemoryStream ms = new MemoryStream(data); picEmp.Image = Image.FromStream(ms); } } }