莫名其妙的SqlServer更新错误:OleDbException 必须声明标量变量

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

以前一直使用OleDbDataAdapter的方式更新数据库,今天我试了一下用OleDbCommand的方式更新数据库出现了莫名其妙的错误。
环境:Sql Server 2005

使用如下代码:

             string  strSql  =   " UPDATE M_Employee set  EMPLOYEENAME = @EMPLOYEENAME where  EMPLOYEEID = @EMPLOYEEID  " ;

            
using  (OleDbCommand Comm  =   new  OleDbCommand(strSql, olecn))
            
{
                Comm.Parameters.Add(
new OleDbParameter("@EMPLOYEENAME", OleDbType.VarChar)).Value = "ddd";
                Comm.Parameters.Add(
new OleDbParameter("@EMPLOYEEID", OleDbType.VarChar)).Value = EmployeeID;

                Comm.ExecuteNonQuery();
            }
一直报错:必须声明标量变量@EMPLOYEENAME

害我调试了n个小时,不行。
换了下面的方式就可以了
             string  strSql  =   " UPDATE M_Employee set  EMPLOYEENAME = ? where  EMPLOYEEID = ?  " ;

            
using  (OleDbCommand Comm  =   new  OleDbCommand(strSql, olecn))
            
{
                Comm.Parameters.Add(
new OleDbParameter("@P1", OleDbType.VarChar)).Value = "ddd";
                Comm.Parameters.Add(
new OleDbParameter("@P2", OleDbType.VarChar)).Value = EmployeeID;

                Comm.ExecuteNonQuery();
            }


不明白是什么原因,是我代码有问题,还是oledb有问题??



    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/08/10/851097.html,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
SQL 存储 数据库
数据库原理与应用(SQL Server)笔记 第八章 用户自定义数据类型与变量
数据库原理与应用(SQL Server)笔记 第八章 用户自定义数据类型与变量
数据库原理与应用(SQL Server)笔记 第八章 用户自定义数据类型与变量
|
Kubernetes Cloud Native 安全
云原生|kubernetes|k8s下部署SQLServer以及Navicat连接SQLServer报错:远程主机强迫关闭了一个现有的连接 错误的解决
云原生|kubernetes|k8s下部署SQLServer以及Navicat连接SQLServer报错:远程主机强迫关闭了一个现有的连接 错误的解决
1165 0
|
数据库 数据安全/隐私保护 Windows
成功解决启动SQLServer失败,根据错误信息判断错误故障
成功解决启动SQLServer失败,根据错误信息判断错误故障
|
数据库 数据安全/隐私保护 Windows
成功解决启动SQLServer失败,根据错误信息判断错误故障
成功解决启动SQLServer失败,根据错误信息判断错误故障
|
SQL
SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑
原文:SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑 一同事在写脚本时,遇到一个关于LIKE里面使用不同的变量类型导致查询结果不一致的问题,因为这个问题被不同的人问过好几次,索性总结一下,免得每次都要解释一遍,直接丢一篇博客岂不是更方便!其实看似有点让人不解的现象背后实质跟数据类型的实现有关。
985 0
|
数据库
SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败
原文:SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败 今天发现队列读取器代理不停地尝试启动但总是出错: 其中内容如下: 队列读取器代理在连接“PublicationServer”上的“pubDB”时遇到错误“试图进行的插入或更新已失败, 原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION, 而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。
1436 0
|
SQL 数据库
SQLServer 进程无法向表进行大容量复制(错误号: 22018 20253)
原文:SQLServer 进程无法向表进行大容量复制 我的环境:SQL SERVER 2008 R2:发布者 ->SQL SERVER 2017 订阅者 进程无法向表“"dbo"."XXXXX"”进行大容量复制。
2584 0