PDA

View Full Version : ارور دادن برنامه هنگام اضافه کردن عکس به دیتا گرید ویو



alireza_g698
دوشنبه 17 شهریور 1393, 19:45 عصر
سلام دوستان من وقتی میخوام عکسی از sql را در دیتاگرید نشون بدم با این پیغام مواجه میشم.البته عکس نمایش داده میشه ها ولی به طور مداوم این پیغام نمایش داده میشه123224
این هم کدهام هستش
این متدی برای تبدیل هستش
public static byte[] ImagtoBytes(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}

این هم رویداد دکمه برای اضفه کردن هستش

private void button1_Click(object sender, EventArgs e)
{
SqlCommand command = new SqlCommand("insertImage", connection);
command.CommandType = CommandType.StoredProcedure;

try
{
connection.Open();
command.Parameters.Clear();
command.Parameters.AddWithValue("@Name", this.txtName.Text);
command.Parameters.AddWithValue("@Data", ImagtoBytes(pictureBox1.Image));
command.ExecuteNonQuery();
connection.Close();
MessageBox.Show("image saved....");
showData();
}
catch (Exception)
{

// throw;
}
finally
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}


}


این هم متدی برای نمایش در دیتاگرید هست

public void showData()
{
SqlCommand command=new SqlCommand("select * from images",connection);
command.CommandType = CommandType.Text;
DataTable table=new DataTable();
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
table.Load(reader);
dataGridView1.DataSource = null;
dataGridView1.DataSource = table;
foreach (DataGridView row in dataGridView1.Rows)

{
row.Height = 80;
}

}
catch (Exception)
{

// throw;
}
finally
{
if (connection.State==ConnectionState.Open)
{
connection.Close();

}
}
}

farhad.k.t
سه شنبه 18 شهریور 1393, 23:08 عصر
ازmemory stream برای تبدیل عکس به بایت استفاده کنید:
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
Mydb db = new Mydb();
MessageBox.Show(db.savePic(ms.GetBuffer()));

public string savePic(byte[] bt)
{
try
{
cmd = new SqlCommand("insert into tblPic (PicFile) values(@picfile)", cn);
cmd.Parameters.AddWithValue("@picfile", bt);
openconnection(cn);
cmd.ExecuteNonQuery();
cn.Close();
return "Your photo is now in DB";
}
catch (Exception ex)
{
return ex.Message;
}
}
سپس بدون هیچ دستوری فقط dgv را بایند کرده و نتیجه را مشاهده نمایید...
موفق باشید...