vid4259
شنبه 07 دی 1392, 01:54 صبح
دوستان من یه فرم دارم که توش چندتا تکست باکی با یک picturebox که می خوام عکس مورد نظر بعد از انتخاب توی دیتا بیس دخیره کنه که این کارو با کد زیر انجام می ده و داده (نام و نام خانوادگی و عکس) ذخیره میکنه
MemoryStream ms = new MemoryStream();
picUser.Image.Save(ms, picUser.Image.RawFormat);
byte[] arrPic = ms.GetBuffer();
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb;Persist Security Info=false";
OleDbCommand myCommand = new OleDbCommand();
string query = "insert into tb_us (fname, family,father,code,mobil,email,idcode,pic) VALUES ('" + txt_name.Text + "', '" + txt_family.Text + "', '" + txt_father.Text + "', '" + txt_post.Text + "', '" + txt_mobil.Text + "', '" + txt_mail.Text + "', '" + txt_national.Text + "','" + arrPic + "')";
con.Open();
myCommand.CommandText = query;
myCommand.Connection = con;
myCommand.ExecuteNonQuery();
con.Close();
حالا وقتی می خوام برای ویرایش داده مورد نظر بیان تو جای خودشون(مثلا علی داخل تکست نام ، غلامی توی تکست نام خانوادگی و عکش توی picturebox ) با کد زیر فقط می تونم تکست ها رو پر کنم برای پر کردن picturebox چکار کنم
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb;Persist Security Info=false";
OleDbCommand com = new OleDbCommand();
com.Connection = con;
com.CommandText = "select * from tb_us where id =" + dataGridView1.CurrentRow.Cells[0].Value;
OleDbDataReader dr;
con.Open();
dr = com.ExecuteReader();
if (dr.Read())
{
txt_name.Text = dr["fname"].ToString();
txt_family.Text = dr["family"].ToString();
txt_father.Text = dr["father"].ToString();
txt_national.Text = dr["idcode"].ToString();
txt_post.Text = dr["code"].ToString();
txt_mobil.Text = dr["mobil"].ToString();
txt_mail.Text = dr["email"].ToString();
}
خواهشا راهنمایمم کنید
MemoryStream ms = new MemoryStream();
picUser.Image.Save(ms, picUser.Image.RawFormat);
byte[] arrPic = ms.GetBuffer();
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb;Persist Security Info=false";
OleDbCommand myCommand = new OleDbCommand();
string query = "insert into tb_us (fname, family,father,code,mobil,email,idcode,pic) VALUES ('" + txt_name.Text + "', '" + txt_family.Text + "', '" + txt_father.Text + "', '" + txt_post.Text + "', '" + txt_mobil.Text + "', '" + txt_mail.Text + "', '" + txt_national.Text + "','" + arrPic + "')";
con.Open();
myCommand.CommandText = query;
myCommand.Connection = con;
myCommand.ExecuteNonQuery();
con.Close();
حالا وقتی می خوام برای ویرایش داده مورد نظر بیان تو جای خودشون(مثلا علی داخل تکست نام ، غلامی توی تکست نام خانوادگی و عکش توی picturebox ) با کد زیر فقط می تونم تکست ها رو پر کنم برای پر کردن picturebox چکار کنم
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb;Persist Security Info=false";
OleDbCommand com = new OleDbCommand();
com.Connection = con;
com.CommandText = "select * from tb_us where id =" + dataGridView1.CurrentRow.Cells[0].Value;
OleDbDataReader dr;
con.Open();
dr = com.ExecuteReader();
if (dr.Read())
{
txt_name.Text = dr["fname"].ToString();
txt_family.Text = dr["family"].ToString();
txt_father.Text = dr["father"].ToString();
txt_national.Text = dr["idcode"].ToString();
txt_post.Text = dr["code"].ToString();
txt_mobil.Text = dr["mobil"].ToString();
txt_mail.Text = dr["email"].ToString();
}
خواهشا راهنمایمم کنید