问题使用断开模式将图像添加到数据库 [英] Probleme add images to a database using disconnect mode

查看:51
本文介绍了问题使用断开模式将图像添加到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将图像添加到我的数据库从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)







Xem phim online


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 false

dialog.Filter = "JPEG|*.jpg";
            if (dialog.ShowDialog() == DialogResult.OK)




Xem phim online


这篇关于问题使用断开模式将图像添加到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆