0
我有下面的代码:的OdbcCommand与参数不返回任何
public static List<T> ExecuteQuery<T>(string qry, Dictionary<string, object> parameters = null)
{
using (var connection = new OdbcConnection(ConnectionString))
{
connection.Open();
var command = new OdbcCommand(qry, connection);
if (parameters != null)
{
foreach (var parameter in parameters)
{
command.Parameters.AddWithValue(parameter.Key, parameter.Value);
}
}
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
// ...
}
}
}
}
当我执行类似:
ExecuteQuery<MyClass>("SELECT * FROM MYTABLE WHERE ID = 1");
它返回的所有正确的数据。但是当我发送这个:
ExecuteQuery<MyClass>(
"SELECT * FROM MYTABLE WHERE ID = @Id",
new Dictionary<string, object> { { "@Id", 1 } });
不会返回任何东西。我已经尝试过使用command.Parameters.Add,但它的历史相同。
那么,我的错误在哪里?
感谢大家。
谢谢!!有用!!! – DannSaHa
我喜欢你关于OdbcType的建议,但是我的数据库提供者可能会在任何时候改变,所以这意味着我需要使用最独立的方式 – DannSaHa