gpt4 book ai didi

.net-core - .Net Core Npgsql 准备好的语句

转载 作者:行者123 更新时间:2023-12-04 08:56:35 24 4
gpt4 key购买 nike

我一直在尝试通过使用 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";

关于.net-core - .Net Core Npgsql 准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63799827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com