Kar*_*der 6 c# db2 odbc parameterized-query
我试图使用客户端访问ODBC驱动程序使用以下代码从.NET运行针对DB2数据库的参数化查询:
var db2Cmd = new OdbcCommand("INSERT INTO presnlats (LAT) VALUES (@LAT)", db2Conn);
db2Cmd.Parameters.AddWithValue("@LAT", insertValue);
Console.Out.WriteLine(db2Cmd.ExecuteNonQuery());
Run Code Online (Sandbox Code Playgroud)
执行时,OdbcException
抛出一个:
错误[42S22] [IBM] [iSeries Access ODBC驱动程序] [DB2 UDB] SQL0206 - 列@LAT不在指定的表中.
互联网似乎暗示客户端访问ODBC驱动程序支持参数化查询,但此错误似乎表明不是这样.提供的代码有什么问题吗?
tom*_*ing 10
你试过用过吗?作为占位符而不是@LAT?
var db2Cmd = new OdbcCommand("INSERT INTO presnlats (LAT) VALUES (?)", db2Conn);
db2Cmd.Parameters.AddWithValue("LAT", insertValue);
Console.Out.WriteLine(db2Cmd.ExecuteNonQuery());
Run Code Online (Sandbox Code Playgroud)
这是MS Access在使用OdbcConnection/OdbcCommand时所需要的.
您只需要确保您的Parameters.AddWithValue()语句与INSERT语句中的字段列表的顺序相同.传递给AddWithValue()的第一个参数似乎并不重要,尽管按惯例我将它与字段名称相同.