-----------------对象必须实现 IConvertible ???------------------------

New919 2006-06-08 09:02:27
我现在刚开始用ms 的 enterprise library 进行数据库开发
代码出现了一些问题:

Database db = DatabaseFactory.CreateDatabase();
SqlParameter[] parameters = { new SqlParameter("@id" , SqlDbType.Int , 4) , new SqlParameter("@name" , SqlDbType.VarChar , 20)};
parameters[0].Value = 4;
parameters[1].Value = "asd";
DBCommandWrapper mObjCmd = db.GetStoredProcCommandWrapper("addMyTable" , parameters);
mObjDB.ExecuteNonQuery(mObjCmd);// 出错了(对象必须实现 IConvertible )

但是改成这样就好了:
Database db = DatabaseFactory.CreateDatabase();
DBCommandWrapper mObjCmd = db.GetStoredProcCommandWrapper("addMyTable");
mObjCmd.AddInParameter("@id" , DbType.Int32 , 12);
mObjCmd.AddInParameter("@name" , DbType.String , "asd");
mObjDB.ExecuteNonQuery(mObjCmd);// 执行成功了


这个是为什么啊?
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
New919 2006-06-08
  • 打赏
  • 举报
回复
aspgreener(水若寒) :
我第一种方法也对参数赋值了的啊
我要是非要用这样一个传递参数数组的方法
DBCommandWrapper mObjCmd = db.GetStoredProcCommandWrapper("addMyTable" ,parameters);
应该怎么写啊?

aspgreener 2006-06-08
  • 打赏
  • 举报
回复
DBCommandWrapper mObjCmd = db.GetStoredProcCommandWrapper("addMyTable" , parameters);

mObjCmd.AddInParameter("@id" , DbType.Int32 , 12);
mObjCmd.AddInParameter("@name" , DbType.String , "asd");
因为前面一句只是传递了一个数组,而后面呢,进行了赋值操作。也就是说,GetStoredProcCommandWrapper()方法没有实现参数化的方法。底层应该通过
循环,进行类似mObjCmd.AddInParameter("@id" , DbType.Int32 , 12);的操作,就ok;了。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧