SQL不用拼接用参数能否多带几个? sqlhelper

phhui 2011-12-22 04:30:54
之前都是用拼接的,现在想用带参数的,网上看了一下用法如下。

string sql="select * from aa where bb=@cc";
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@cc", SqlDbType.Int);
param[0].Value=aa[0];
SqlHelper.ExecuteNonQuery(con, CommandType.Text, sql, Param)

问题是这样我每个查询更新语句需要写一个参数param并赋值
能不能直接将param设置50或100个参数,用个方法赋值,每个SQL语句都传这个参数数组进去,以适合所有(包括更新,查询,添加)等sql
如:

string sql="select * from aa where bb=@cc";//这个语句只用到@cc,其它的才会用到@dd等。
SqlParameter[] param = new SqlParameter[50];
param[0] = new SqlParameter("@cc", SqlDbType.Int);
param[0].Value=aa[0];
param[1] = new SqlParameter("@dd", SqlDbType.Char);
param[1].Value=aa[0];
......
SqlHelper.ExecuteNonQuery(con, CommandType.Text, sql, Param);

我直接按上面这样做报错:
System.NullReferenceException: 未将对象引用设置到对象的实例。
行 60: {
行 61: //check for derived output value with no value assigned
行 62: if ((p.Direction == ParameterDirection.InputOutput) && (p.Value == null))
行 63: {
行 64: p.Value = DBNull.Value;
...全文
58 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2011-12-22
  • 打赏
  • 举报
回复
SqlParameter[] param = new SqlParameter[50];
param[0] = new SqlParameter("@cc", SqlDbType.Int);
param[0].Value=aa[0];
param[1] = new SqlParameter("@dd", SqlDbType.Char);
param[1].Value=aa[0];
----------
这个位置换成循环

循环的次数 有传进来的参数决定,参数的类型是数组

62,243

社区成员

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

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

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

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