gpt4 book ai didi

.net - 使用 Npgsql 提供程序 (.NET) 执行 sql 文件

转载 作者:行者123 更新时间:2023-11-29 13:04:14 25 4
gpt4 key购买 nike

我在 .NET 4.0 中使用 Postgres 数据库工作,因此使用了 Npgsql dll。我似乎无法在任何地方找到如何直接使用命令执行 sql 文件。

它应该与使用 -f 参数启动 psql.exe 时的效果相同,但随后在 .NET 代码中。

例如,现在你有:

var cmd = new NpgsqlCommand(conn);
cmd.ExecuteNonQuery("insert into...");

我需要这样的东西:

var cmd = new NpgsqlCommand(conn);
cmd.ExecuteFile("C:\... .sql");

我可以读取整个文件并将其作为命令字符串执行,但奇怪的是,这并没有相同的效果。

非常感谢任何帮助。

最佳答案

为什么不写一个简单的扩展方法:

public static int ExecuteFile(this NpgsqlCommand cmd, string filename)
{
string strText = System.IO.File.ReadAllText(filename, System.Text.Encoding.UTF8);
cmd.CommandText = strText;
return cmd.ExecuteNonQuery();
}

或者您可能想使用自定义编码,如 System.Text.Encoding.Default 或其他,然后使用

public static int ExecuteFile(this NpgsqlCommand cmd, string filename, System.Text.Encoding enc)
{
string strText = System.IO.File.ReadAllText(filename, enc);
cmd.CommandText = strText;
return cmd.ExecuteNonQuery();
}

如果你在命名空间 Npgsql 的静态类中声明它,那么你甚至不需要额外的包含。

关于.net - 使用 Npgsql 提供程序 (.NET) 执行 sql 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510685/

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