سلام دوست عزیز
ابتدا یه تابع برای دریافت عکس از دیتابیس مینویسیم
public static void selectImageFromDB(int id,PictureBox pics) {
try
{
SqlConnection con = new SqlConnection(dbPath);
con.Open();
SqlCommand cmd = new SqlCommand("select photo from galleries where id = '" + id + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
MemoryStream ms = new MemoryStream((byte[])reader["photo"]);
pics.Image = new Bitmap(ms);
}
else
{
//next time set default image
pics.Image = null;
}
con.Close();
}
catch(Exception ex){
MessageBox.Show(ex.Message);
}
}
*******************************************************************************************
این کد رو نیز در رویداد سل کلیک دتاگرید قرار بده
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if(e.RowIndex >= 0) {
try
{
id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
clsSelect.selectImageFromDB(id, pictureBox1);
}
catch (Exception)
{
pictureBox1.Image = null;
}
}
}
******************************************************************************************
روش دوم
SqlConnection cn = new SqlConnection("data source=localhost;initial catalog=notitest;user id=sa;password=cos123");
cn.Open();
SqlCommand cmd = new SqlCommand("select * from imgtest", cn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
textBox2.Text = dr[0].ToString();
pictureBox2.Image = Base64ToImage(dr[1].ToString());
}
cn.Close();
public Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0,
imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
return image;
}
**************************************************************************************