c# – 来自.NET的参数化DB2查询

前端之家收集整理的这篇文章主要介绍了c# – 来自.NET的参数化DB2查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用客户端访问ODBC驱动程序使用以下代码从.NET运行针对DB2数据库的参数化查询
var db2Cmd = new OdbcCommand("INSERT INTO presnlats (LAT) VALUES (@LAT)",db2Conn);
db2Cmd.Parameters.AddWithValue("@LAT",insertValue);
Console.Out.WriteLine(db2Cmd.ExecuteNonQuery());

执行时,抛出OdbcException:

ERROR [42S22] [IBM][iSeries Access ODBC Driver][DB2 UDB]sql0206 – Column @LAT not in specified tables.

The internets似乎暗示客户端访问ODBC驱动程序支持参数化查询,但此错误似乎表示不同.提供的代码有什么问题吗?

解决方法

你试过用过吗?作为占位符而不是@LAT?
var db2Cmd = new OdbcCommand("INSERT INTO presnlats (LAT) VALUES (?)",db2Conn);

db2Cmd.Parameters.AddWithValue("LAT",insertValue);

Console.Out.WriteLine(db2Cmd.ExecuteNonQuery());

这是MS Access在使用OdbcConnection / OdbcCommand时所需要的.

您只需要确保您的Parameters.AddWithValue()语句与INSERT语句中的字段列表的顺序相同.传递给AddWithValue()的第一个参数似乎并不重要,尽管按惯例我将它与字段名称相同.

猜你在找的C#相关文章