I want to add images to my database From winForms application to SQL Server 2008 using disconnected mode in ADO.NET, but I have a problem in this code, I can't add my images to my database
I always get a null value.
EDITED
I have changed my code to this new code :
string Query;
SqlDataAdapter dataadapter;
DataSet dataset = new DataSet();
OpenFileDialog dialog = new OpenFileDialog();
BindingSource tblname = new BindingSource();
private void la_Load(object sender, EventArgs e)
{
Query = "select * from Imagee ";
dataadapter = new SqlDataAdapter(Query, Connexion.cnx);
dataadapter.Fill(dataset, "tblAddImage");
pictureBox1.DataBindings.Add("Image", dataset, "AjoutImage.imagee");
tblname.DataSource = dataset.Tables["tblAddImage"];
textBox1.DataBindings.Add(new Binding("text", tblname, "Id"));
Binding b = new Binding("Image", tblname, "imagee");
b.Format += new ConvertEventHandler(b_Format);
pictureBox1.DataBindings.Add(b);
dataGridView1.DataSource = tblname;
}
private void b_Format(object sender, ConvertEventArgs e)
{
byte[] b = (byte[])e.Value;
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
Bitmap bmp = new Bitmap(ms);
ms.Close();
e.Value = bmp;
}
private void Browse_Click(object sender, EventArgs e)
{
dialog.Filter = "JPEG|*.jpg";
if (dialog.ShowDialog() == DialogResult.OK)
{
Image image = Image.FromFile(dialog.FileName);
pictureBox1.Image = image;
}
}
private void buttonAdd_Click(object sender, EventArgs e)
{
//this.BindingContext[dataset, "tblAddImage"].AddNew();
tblname.AddNew();
SqlCommandBuilder sql = new SqlCommandBuilder(dataadapter);
dataadapter.Update(dataset, "tblAddImage");
}
the error now is when i click to add button for adding a new row to my database i have null value inserted and i receive this message
Unable to cast an object of type 'System.DBNull' to type 'System.Byte []'. in this line byte[] b = (byte[])e.Value;
I want to add images to my database From winForms application to SQL Server 2008 using disconnected mode in ADO.NET, but I have a problem in this code, I can't add my images to my database
I always get a null value.
EDITED
I have changed my code to this new code :
string Query;
SqlDataAdapter dataadapter;
DataSet dataset = new DataSet();
OpenFileDialog dialog = new OpenFileDialog();
BindingSource tblname = new BindingSource();
private void la_Load(object sender, EventArgs e)
{
Query = "select * from Imagee ";
dataadapter = new SqlDataAdapter(Query, Connexion.cnx);
dataadapter.Fill(dataset, "tblAddImage");
pictureBox1.DataBindings.Add("Image", dataset, "AjoutImage.imagee");
tblname.DataSource = dataset.Tables["tblAddImage"];
textBox1.DataBindings.Add(new Binding("text", tblname, "Id"));
Binding b = new Binding("Image", tblname, "imagee");
b.Format += new ConvertEventHandler(b_Format);
pictureBox1.DataBindings.Add(b);
dataGridView1.DataSource = tblname;
}
private void b_Format(object sender, ConvertEventArgs e)
{
byte[] b = (byte[])e.Value;
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
Bitmap bmp = new Bitmap(ms);
ms.Close();
e.Value = bmp;
}
private void Browse_Click(object sender, EventArgs e)
{
dialog.Filter = "JPEG|*.jpg";
if (dialog.ShowDialog() == DialogResult.OK)
{
Image image = Image.FromFile(dialog.FileName);
pictureBox1.Image = image;
}
}
private void buttonAdd_Click(object sender, EventArgs e)
{
//this.BindingContext[dataset, "tblAddImage"].AddNew();
tblname.AddNew();
SqlCommandBuilder sql = new SqlCommandBuilder(dataadapter);
dataadapter.Update(dataset, "tblAddImage");
}
the error now is when i click to add button for adding a new row to my database i have null value inserted and i receive this message
Unable to cast an object of type 'System.DBNull' to type 'System.Byte []'. in this line byte[] b = (byte[])e.Value;
0 commentaires:
Enregistrer un commentaire