c# - 在 C# 中使用 OleDbDataAdapter 参数

标签 c# oledb oledbparameter

我正在使用 OleDb 填充数据表。我正在尝试使用参数化查询,但它似乎不适用于 OleDbDataAdapter。大家有什么建议吗?

cmd.CommandText = "SELECT A,B,C,D FROM someTable WHERE A=@A AND D BETWEEN @D1 AND @D2";
cmd.Parameters.Add("@A", OleDbType.VarChar).Value = "1234567";
cmd.Parameters.Add("@D1", OleDbType.DBDate).Value = "02/01/2011";
cmd.Parameters.Add("@D2", OleDbType.DBDate).Value = "01/31/2012";

A first chance exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
System.Data.OleDb.OleDbException (0x80040E11): [DB2] SQL0206N  "@A" is not valid in the context where it is used.  SQLSTATE=42703

最佳答案

参见http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter.aspx :

“OLE DB.NET Framework 数据提供程序使用标有问号 (?) 的位置参数,而不是命名参数。”

因此您不能使用 @Parameter 语法,您必须用问号指示参数,并按照与查询中出现的完全相同的顺序分配参数值。

关于c# - 在 C# 中使用 OleDbDataAdapter 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8123507/

相关文章:

c# - 在 Visual Studio 2010 Express 上构建 FreeImage.net

c# - 有没有办法获得 "kill"模型属性?

c# - HTML Agility Pack - 从 SPAN 标签内的第一个 STRONG 标签获取文本

c# - 当有 166,110 行时,Microsoft ACE OLEDB 连接创建空 Excel

delphi - 如何检查系统上是否安装了OLEDB驱动程序?

c# - Bitmap.Save "Exception (0x80004005): A generic error occurred in GDI+."上的 ASP.NET 错误

c# - .txt 文件格式的 Microsoft Jet OLEDB 4.0 连接字符串

c# - 将 DateTime 值作为参数传递给 OleDbCommand

c# - OleDb 参数和参数名称