问题使用断开模式将图像添加到数据库 [英] Probleme add images to a database using disconnect mode
问题描述
我想将图像添加到我的数据库从winForms应用程序到使用ADO.NET中的断开连接模式的SQL Server 2008,但我在这段代码中有问题,我无法将我的图像添加到我的数据库中
我总是得到一个空值。
这是我的代码:
string 查询;
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, Timage);
textBox1.DataBindings.Add( new Binding( Text,dataset, Timage。 ID跨度>));
绑定b = 新绑定( Image,dataset, Timage.imagee);
b.Format + = new ConvertEventHandler(b_Format);
pictureBox1.DataBindings.Add(b);
dataGridView1.DataMember = Timage;
dataGridView1.DataSource = dataset;
}
private void b_Format( object sender,ConvertEventArgs e )
{
byte [] b =( byte [])e.Value;
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
位图bmp = new 位图(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, Timage跨度>]的AddNew();
// SqlCommandBuilder sql = new SqlCommandBuilder(dataadapter);
// dataadapter.Update(dataset,Timage);
}
错误是当我点击添加按钮添加一个新行到我的数据库我有空值插入图像的字段,我收到此消息
无法将类型为'System.DBNull'的对象强制转换为输入'System.Byte []'。在这一行中
byte [] b =(byte [])e.Value;
Query = select * from Imagee跨度>;
dataadapter = new SqlDataAdapter(Query,Connexion.cnx);
dataadapter.Fill(dataset, Timage);
Connexion.cnx.Close(); // 首先处理您的连接对象
// 然后给下一个工作条件
if (dataset!= null && dataset.Tables.Count > 0 )
{
textBox1.DataBindings.Add ( new 绑定( Text, dataset, Timage.Id));
绑定b = 新绑定( Image,dataset, Timage.imagee);
b.Format + = new ConvertEventHandler(b_Format);
pictureBox1.DataBindings.Add(b);
dataGridView1.DataMember = Timage;
dataGridView1.DataSource = dataset;
}
我认为假dialog.Filter = JPEG | * .jpg;
if (dialog.ShowDialog()== DialogResult.OK)
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.
this is my 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,"Timage");
textBox1.DataBindings.Add(new Binding("Text", dataset, "Timage.Id"));
Binding b = new Binding("Image", dataset, "Timage.imagee");
b.Format += new ConvertEventHandler(b_Format);
pictureBox1.DataBindings.Add(b);
dataGridView1.DataMember = "Timage";
dataGridView1.DataSource = dataset;
}
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, "Timage"].AddNew();
//SqlCommandBuilder sql = new SqlCommandBuilder(dataadapter);
//dataadapter.Update(dataset, "Timage");
}
the error is when i click to add button for adding a new row to my database i have null value inserted in field of image 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;
Query = "select * from Imagee "; dataadapter = new SqlDataAdapter(Query, Connexion.cnx); dataadapter.Fill(dataset, "Timage"); Connexion.cnx.Close();//First dispose your connection object //Then give a condition to next of work if (dataset != null && dataset.Tables.Count > 0) { textBox1.DataBindings.Add(new Binding("Text", dataset, "Timage.Id")); Binding b = new Binding("Image", dataset, "Timage.imagee"); b.Format += new ConvertEventHandler(b_Format); pictureBox1.DataBindings.Add(b); dataGridView1.DataMember = "Timage"; dataGridView1.DataSource = dataset; }
i think falsedialog.Filter = "JPEG|*.jpg"; if (dialog.ShowDialog() == DialogResult.OK)
这篇关于问题使用断开模式将图像添加到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!