sql update语句参数使用个数问题(高手帮忙啊)

upingking 2004-04-28 12:28:09
sql语句如下"update news set name=?,id=?,aa=?..... where id=1"
参数赋值语句如下
olecmd.Parameters.Add("@name",OleDbType.VarChar,50);
olecmd.Parameters[("@name"].Value=str;
当参数得个数比较少时可以执行,当参数得个数大于7的时候不能执行啊,

出错提示:
[OleDbException (0x80040e21): 多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。]
[InvalidOperationException: 命令参数[11] '@name' 无效。
]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS dbParams, Object& executeResult) +99
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +62
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
lyweb.sqlop.excsql(OleDbCommand olecmd) in d:\inetpub\wwwroot\lyweb\sqlop.cs:385
lyweb.news_edt.Button1_Click(Object sender, EventArgs e) in d:\inetpub\wwwroot\lyweb\news_edt.aspx.cs:213
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain() +1277
有解决的吗,参数大于7个,我现在的参数是11个,还可能再多?高手帮忙啊,up者有分,解决就给分!
...全文
436 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
upingking 2004-04-30
  • 打赏
  • 举报
回复
谢谢大家, 解决了,是我不小心在update语句中少写了一个参数,我update和insert语句共用那些参数,所以insert没问题,update出错,太粗心了^_^。放分。
wggwan 2004-04-28
  • 打赏
  • 举报
回复
肯定跟参数的个数没有关系的,你把你sqlUpdte语句用Response.Write()输出然后到查询分析器中运行看看到底是什么错误。这样有利于你检查。
huangsuipeng 2004-04-28
  • 打赏
  • 举报
回复
参数的顺序SURE没问题?
morality 2004-04-28
  • 打赏
  • 举报
回复
不过应该跟参数的个数没有太大的关系!很有可能是你代码有错误!
把的全部代码贴出来,让大家帮你看看!~
xjshuaishuai 2004-04-28
  • 打赏
  • 举报
回复
update news set name=?,id=?,aa=?..... where id=1
你把update new set [name],[id]
这在sql-server中有函数是“[]”括起来
morality 2004-04-28
  • 打赏
  • 举报
回复
帮你顶一下!关注!
thinkingforever 2004-04-28
  • 打赏
  • 举报
回复
把update语句在查询分析器中执行一下,看会不会出错.
olecmd.Parameters[("@name"].Value=str;这句是不是写错了
upingking 2004-04-28
  • 打赏
  • 举报
回复
另insert语句11个参数没问题
帅帅123321 2004-04-28
  • 打赏
  • 举报
回复
我也觉得和使用参数个数没关系,不过实在不行,你可以用2个update来完成。每个里面少写几个参数不就行了。虽然对速度没什么好处。但也没办法。实现第一嘛

62,047

社区成员

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

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

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

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