0 امتیاز
سلام من میخوام وقتی که بر روی هر سطری از دیتاگرید ویو کلیک میکنم عکس مربوط به اون سطر در image  من نمایش داده شه .برنامه مو در محیط wpf نوشتم

ممنون میشم راهنماییم کنید

1 پاسخ

0 امتیاز

سلام دوست عزیز

 

ابتدا یه تابع برای دریافت عکس از دیتابیس مینویسیم
 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;
        }

**************************************************************************************

 

سوال جدید

2,334 سوال

2,871 پاسخ

3,725 دیدگاه

3,914 کاربر

دسته بندی ها

...