更多示例去: 应用编程实例大全
我的部分代码如下:
this.Cursor = Cursors.WaitCursor;
System.IO.FileStream Breader = File.OpenRead(m_strFileName);
byte[] bt = new byte[Breader.Length];
Breader.Read(bt,0,bt.Length);
string sErr="";
//如果库中存在此类别记录,删除,再保存
string sql="Delete from Sr_TotalRpt2 where tj_id='"+mbID+"';Insert Into Sr_TotalRpt2(tj_ID,tj_BT,tj_Row,tj_Col,CellData) Values(@ID,@BT,@TjRow,@TjCol,@CellData)";
SqlParameter par1 = new SqlParameter("@ID",SqlDbType.Int);
par1.Value = mbID;
SqlParameter par2 = new SqlParameter("@BT",SqlDbType.NVarChar);
par2.Value = mbMc;
SqlParameter par3 = new SqlParameter("@TjRow",SqlDbType.Int);
par3.Value = tjRow;
SqlParameter par4 = new SqlParameter("@TjCol",SqlDbType.Int);
par4.Value = tjCol;
SqlParameter par5=new SqlParameter("@CellData",SqlDbType.Image);
par3.Value=bt;
SqlParameter[] pars={par1,par2,par3,par4,par5};
if(!execNonQuery(sql,ref sErr,pars))
{
MessageBox.Show(this,"错误信息:"+sErr,"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
else
MessageBox.Show(this,"保存成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.Cursor = Cursors.Default;
当我保存时就提示:对象必须实现 IConvertible
大家仔细看一下就会发现程序中有一个错误:
SqlParameter par5=new SqlParameter("@CellData",SqlDbType.Image);
par3.Value=bt;
这里 par3.Value=bt; 实际上应该是:par5.Value=bt;
这样在保存时可能开成了参数对象数组形式,从而提示:对象必须实现 IConvertible
当我改成:
SqlParameter par5=new SqlParameter("@CellData",SqlDbType.Image);
par5.Value=bt;
时就好了。
从我的错误可以给大家提个醒,碰到这样的错误时,如何去检查.
也许是我分析的不恰当,希望高手们给予提示,谢谢!