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

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



posted on 2007-10-19 15:23  .NET初学者俱乐部  阅读(3428)  评论(1编辑  收藏  举报


 
Asp.net 初学者零起点从入门到精通