.Net Core Npgsql准备的语句



我一直试图通过使用Prepared statements来更改.Net Core应用程序中的一些SQL语句,使其更可重用,但我在NpgsqlDbType方面遇到了问题。

我试着按照文件说明去做。

NpgsqlCommand command = new NpgsqlCommand (
" select * from computers where com_phys = @com_phys ",
dbconnection
);
command.Parameters.Add("com_phys", NpgsqlDbType.Varchar);
command.Prepare();

但表示,它无法编译

The name 'NpgsqlDbType' does not exist in the current context

我是不是错过了什么?如何使用NpgsqlDbType?

更新

我只是把最后的工作放在这里,以防它能让其他人受益

// prepare
NpgsqlCommand command = new NpgsqlCommand (
" select * from computers where com_phys = @com_phys ",
dbconnection
);
var param01 = command.Parameters.Add("com_phys", NpgsqlDbType.Varchar);
command.Prepare();
// execute 01
param01.Value = "value01";
var results = command.ExecuteReader();
while(results.Read()) {
// nothing
}
command.Close();
// execute 02
param01.Value = "value02";
var results = command.ExecuteReader();
while(results.Read()) {
// nothing
}
command.Close();
NpgsqlDbType位于NpgsqlTypes命名空间中。请确保顶部有一个using NpgsqlTypes。

如果要同时设置值,请使用AddWithValue而不是Add

NpgsqlCommand command = new NpgsqlCommand (
" select * from computers where com_phys = @com_phys ",
dbconnection
);
command.Parameters.AddValue("com_phys", NpgsqlDbType.Varchar, value);
// OR command.Parameters.AddValue("com_phys", NpgsqlDbType.Varchar, size, value);
// OR command.Parameters.AddValue("com_phys", value);
command.Prepare();

如果你想添加一次参数并执行多次,你可以保留对参数的引用

var parameter = command.Parameters.Add("com_phys", NpgsqlDbType.Varchar);
// Later, in a loop
parameter.Value = "someValue";

相关内容

  • 没有找到相关文章

最新更新