如果 CommandType 设置为 Text,OLE DB .NET 提供程序不支持将参数传递给 OleDbCommand 调用的 SQL 语句或存储过程的命名参数。在这种情况下,必须使用问号 (?) 占位符。例如:SELECT * FROM Customers WHERE CustomerID = ?
因此,向 OleDbParameterCollection 添加 OleDbParameter 对象的顺序必须直接对应于该参数的问号占位符在命令文本中的位置。所以你的代码应该改为
cmd.CommandText = "UPDATE userTable SET Password = ? WHRER userID = ?";
cmd.Parameters.Add(new OleDbParameter("@theUserID", OleDbType.Integer)).Value = UserID;
cmd.Parameters.Add(new OleDbParameter("@newPassword", OleDbType.VarChar, 50)).Value = textBox2.Text.ToString();
因此,向 OleDbParameterCollection 添加 OleDbParameter 对象的顺序必须直接对应于该参数的问号占位符在命令文本中的位置。所以你的代码应该改为
cmd.CommandText = "UPDATE userTable SET Password = ? WHRER userID = ?";
cmd.Parameters.Add(new OleDbParameter("@theUserID", OleDbType.Integer)).Value = UserID;
cmd.Parameters.Add(new OleDbParameter("@newPassword", OleDbType.VarChar, 50)).Value = textBox2.Text.ToString();
解决方案 »
- 求助 SQl 三张表查找多个列值 用户ID对应多个角色ID,每个角色ID又对应多个权限ID ,怎么选出所有权限列值
- IDCardReader 2代身份证扫描
- 求C#版QQ农场外挂
- datagridview 自增长列
- C# 中实现导出Excel和打印(利用Excel)、预览等功能,用什么技术好?(openXml还是com组件)
- 如何使用C#程序关闭explorer?
- 需要实时监控网络连接速度
- winform程序指定平台一定要选x86吗?
- VS2005 录制的宏执行不了了,该怎么修复?
- 请教高手:用vs.net 模仿Duwamish 7.0三层结构数据添加生成解决方案无抱错,浏览运行却未能找到存储过程
- 这种效果用c#怎样实现的
- [HELP]初到深圳,哪位大哥能帮我混口饭吃啊,C#,没什么经验啊。
|
|
cmd.CommandText = "UPDATE userTable SET Password = @newPassword WHere userID =
@theUserID";是where 而不是whrer
cmd.CommandText = "UPDATE userTable SET Password = ? WHRER userID = ?";
cmd.Parameters.Add(new OleDbParameter(null,UserID));
cmd.Parameters.Add(new OleDbParameter(null,textBox2.Text.ToString()));
改一下
cmd.CommandText = "UPDATE userTable SET Password = ? WHERR userID = ?";
cmd.Parameters.Add(new OleDbParameter(null,UserID));
cmd.Parameters.Add(new OleDbParameter(null,textBox2.Text.ToString()));
cmd.CommandText = "UPDATE userTable SET Password = ? WHERE userID = ?";
cmd.Parameters.Add(new OleDbParameter(null,UserID));
cmd.Parameters.Add(new OleDbParameter(null,textBox2.Text.ToString()));
我的WHERE也写错了。改过去后还是不行。我看看是不是占位符的问题。
UPDATE语法错误。全部EXCEPTION抛出如下:
************** 异常文本 **************
System.Data.OleDb.OleDbException: UPDATE 语句的语法错误。
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at M2M.ModifyPasswordUI.button1_Click(Object sender, EventArgs e) in d:\material\material\user\modifypasswordui.cs:line 215
cmd.Parameters.Add(new OleDbParameter("theUserID", OleDbType.Integer)).Value = UserID;
这样行不
cmd.Parameters.Add(new OleDbParameter("theUserID", OleDbType.Integer)).Value = UserID;
这样行不