问题描述
“System.InvalidOperationException”类型的未经处理的异常在System.Data.dll中发生其他信息:ExecuteNonQuery:CommandText属性尚未初始化usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.IO;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Input;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingMicrosoft.Win32;usingSystem.Drawing;namespaceWindowsFormsApplication9{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}staticstringpath1;privatevoidbutton1_Click(objectsender,EventArgse){OpenFileDialogopen=newOpenFileDialog();open.Title="选择一张相片";open.InitialDirectory=@"E:少女时代图片";open.Filter="图像格式|*.jpg;*.bmp;*.gif;*.png";if(open.ShowDialog()==DialogResult.OK){path1=open.FileName;textBox1.Text=path1;Bitmapim=newBitmap(Image.FromFile(open.FileName),210,212);pictureBox1.Image=im;}elsereturn;}privatevoidbutton2_Click(objectsender,EventArgse){textBox1.Text=path1;FileStreamimg=newFileStream(path1,FileMode.Open,FileAccess.Read);Byte[]imgbyte=newByte[img.Length];img.Read(imgbyte,0,imgbyte.Length);img=null;stringim="imintoimage(img)values('{0}')";im=string.Format(im,img);stringconstr=@"DataSource=.sqlexpress;InitialCatalog=sss;IntegratedSecurity=True;Pooling=False";SqlConnectionconnection=newSqlConnection(constr);SqlCommandcmd=connection.CreateCommand();connection.Open();cmd.Parameters.Add("@image",SqlDbType.Image).Value=imgbyte;cmd.ExecuteNonQuery();//错误代码connection.Close();MessageBox.Show("保存成功!");}}}(这个是我建的数据库不知道对不对)
解决方案
解决方案二:
stringim="imintoimage(img)values('{0}')";im=string.Format(im,img);
改成下面的,其他地方不需要改,你本来就是参数化的stringim="imintoimage(img)values(@image)";
解决方案三:
stringim="imintoimage(img)values('{0}')";im=string.Format(im,img);这段代码是没有的我忘了说
解决方案四:
SqlCommandcmd=connection.CreateCommand();你这是建立了一个空的SqlCommand对象,根本没把sql语句传进去啊
解决方案五:
没sql语句,光有个参数,你执行啥??
解决方案六:
按照你说的那么改还是不对错误提示还是一样的问题
解决方案七:
麻烦大神说一下怎么传sql语句我对sql语句不太了解
解决方案八:
对SQL语句不了解,那就去了解不会SQL语句,根本没法做数据库开发的说起来简单,就是insertintotable(字段1,字段2)values(值1,值2)其中如果传image对象必须用参数化方式传值,不能拼接进字符串里去道理很简单,但是你必须自己先理解,否则出了任何小问题,你既不会调试也不会改
解决方案九:
还有,不会SQL语句那么就别一开始就研究什么高大上的存文件,存图片之类的复杂功能了先研究研究存几个int型,string型的变量到数据库的字段里再读出来然后改用参数化传递看怎么传都研究明白了,再弄图片也就相对简单的多了否则就不是摸着石头过河,而是根本不管石头在哪就直接跳进河里,没头没脑