弱弱的问:使用输入参数的sql语句访问数据是不是一个参数只能在一个sql语句中使用?

jeanso 2009-12-14 11:14:06
比如:
OleDbParameter[] parameters = new OleDbParameter[] { new OleDbParameter("@RID", OleDbType.Integer, 4) };
parameters[0].Value = myRID;
string mycmdText = "";
mycmdText = "select 1 from AdminPermission where RID=@RID ";
OLEdbHelper.ExecuteScalar(ConnectionString, mycmdText, parameters);

mycmdText = "update AdminPermission set ..... where RID=@RID ";//---------再这段执行就有错
必须要重新定义一下@RID参数才正确 为什么啊?晕了
OLEdbHelper.ExecuteScalar(ConnectionString, mycmdText, parameters);

难道不能重复调用啊,用一次就回收啦?
...全文
171 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhuan_hl 2010-03-25
  • 打赏
  • 举报
回复
咦 我怎么报 “并非所有变量都已绑定”郁闷 一样的绑定方法啊
jackyuen1 2009-12-29
  • 打赏
  • 举报
回复
可以定义数据
OleDbParameter[] parameters = new OleDbParameter[] { new OleDbParameter("@RID", OleDbType.Integer, 4) };
jeanso 2009-12-29
  • 打赏
  • 举报
回复
jeanso 2009-12-17
  • 打赏
  • 举报
回复
我只是随便列举个sql语句 我是再access里执行sql
fuda_1985 2009-12-15
  • 打赏
  • 举报
回复
怎么就不知道变通呢?
fuda_1985 2009-12-15
  • 打赏
  • 举报
回复
OleDbParameter[] parameters = new OleDbParameter[] { new OleDbParameter("@RID", OleDbType.Integer, 4) };
parameters[0].Value = myRID;
string mycmdText = "";
mycmdText = "if exists(select 1 from AdminPermission where RID=@RID) begin update AdminPermission set ..... where RID=@RID end";
OLEdbHelper.ExecuteScalar(ConnectionString, mycmdText, parameters);

exists这个你去看看用法,你不知道sql语句可以加逻辑的么。。。
你的问题和你后面说的不一样。。知道不?
jeanso 2009-12-14
  • 打赏
  • 举报
回复
jeanso 2009-12-14
  • 打赏
  • 举报
回复
6楼的 我如果需要第一段sql的输出结果,来判断第二段sql的执行语句 就不行了
fuda_1985 2009-12-14
  • 打赏
  • 举报
回复
OleDbParameter[] parameters = new OleDbParameter[] { new OleDbParameter("@RID", OleDbType.Integer, 4) };
parameters[0].Value = myRID;
string mycmdText = "";
mycmdText = "select 1 from AdminPermission where RID=@RID update AdminPermission set ..... where RID=@RID ";
OLEdbHelper.ExecuteScalar(ConnectionString, mycmdText, parameters);


这样不就可以么?
ljs0203 2009-12-14
  • 打赏
  • 举报
回复
你参数改个名称不就OK了?
jeanso 2009-12-14
  • 打赏
  • 举报
回复
必须:OleDbParameter[] parameters;
然后调用一次 ,new一次吗?
parameters = new OleDbParameter[] { new OleDbParameter("@RID", OleDbType.Integer, 4) };
netwar 2009-12-14
  • 打赏
  • 举报
回复
不需要重新定义,可以重复使用。
J_X_M 2009-12-14
  • 打赏
  • 举报
回复
上面这位说得没错.是这样.
ljs0203 2009-12-14
  • 打赏
  • 举报
回复

重新定义参数
jeanso 2009-12-14
  • 打赏
  • 举报
回复
还有米人知道啊

62,265

社区成员

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

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

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

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