PDA

View Full Version : درخواست راهنمایی در مورد بایند کردن فیلد image به picture box



hamide_kh
دوشنبه 14 تیر 1389, 21:58 عصر
سلام خدمت دوستان عزیز
بنده در برنامه ام یک فبلد از نوع nvarchar و یکی از نوع image دارم حالا می خوام در C# این دو تا فیلد را به textbox و picturebox بایند کنم برای textbox کد زیر را می نویسم که مشکلی نیست


TxtFname.DataBindings.Add("Text",objDataView, "Fname");

اما برای فیلد image نمیدونم چی بنویسم اگه ممکنه کد بایند کردن pictureboxبه فیلد image در Sql را بهم توضیج بدید
البته کد زیر را می نویسم که Error میده


pictureBox1.DataBindings.Add("Image", objDataView, "Pict");

ozzy_mra
سه شنبه 15 تیر 1389, 07:49 صبح
سلام
اول برای ذخیره عکس اونو به صورت باینری تو دیتا بیست ذخیره کن

//***************[متد ذخیره سازی عکس]************
//SqlConnection objConnection = new SqlConnection();
//objConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
// string strSQL = "Update UserInfoTBL set pic= @pic where UIND = 0";
//MemoryStream ms = new MemoryStream();
//pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
//byte[] arrpic = ms.GetBuffer();
//ms.Close();
//objConnection.Open();
//SqlCommand com;
//com = new SqlCommand(strSQL, objConnection);
//com.Parameters.Add("@pic", SqlDbType.VarBinary).Value = arrpic;
//com.ExecuteNonQuery();
//objConnection.Close();
//MessageBox.Show("ثبت شد");
//*******************************
بعد با کد زیر به picture box بایندش کن
این تابعش که تو مثلا کلاس DBOperation هست

public object fetchPic(int _lid)
{
try
{
SqlConnection con = new SqlConnection();
SqlCommand cmd;
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
con.Open();
cmd = new SqlCommand("select pic from UserInfoTBL WHERE LID = @lid", con);
cmd.Parameters.AddWithValue("@lid", _lid);
object x = cmd.ExecuteScalar();
con.Close();
return x;
}
catch (Exception ex)
{
MessageBox.Show("خطا در متد دریافت عکس کاربر" + "\n" + "\n" + ex.ToString());
return null;
}
}
و اینجوری به پیکچر باکست بایندش کن

try
{
DBOperation dbobj = new DBOperation();
object xPic = dbobj.fetchPic(LoginIDD);
if (xPic == null)
pictureBox1.Image = null;
else
{
byte[] arrPic = (byte[])(xPic);
MemoryStream ms = new MemoryStream(arrPic);
pictureBox1.Image = Image.FromStream(ms);
}

}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}