在实际开发中碰到的小问题,保存数据时提示:对象必须实现 IConvertible


更多示例去: 应用编程实例大全
我的部分代码如下:

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;
时就好了。
从我的错误可以给大家提个醒,碰到这样的错误时,如何去检查.
也许是我分析的不恰当,希望高手们给予提示,谢谢!



转载于:https://www.cnblogs.com/zhaohui0312/archive/2007/10/19/930524.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值