使用npgsql执行Postgres脚本

4

我有一个创建表的脚本(*.sql),与Postgres数据库一起使用Visual Studio 2010和npgsql进行访问。

我能否从codebehind执行脚本?

这是我尝试过的代码:

string sqlConnectionString = @"myconnection";

FileInfo file = new FileInfo(@"myfile.sql");

string script = file.OpenText().ReadToEnd();

NpgsqlConnection conn = new NpgsqlConnection(sqlConnectionString);

Server server = new Server(new ServerConnection(conn));

server.ConnectionContext.ExecuteNonQuery(script);
file.OpenText().Close();

但是 Visual Studio 不认识 Server

不行,因为我将在许多不同的数据库中执行。我更喜欢从应用程序中执行它。 - Za7pi
我已经在我的第一篇帖子中发布了。谢谢! - Za7pi
设置一个断点,哪个对象初始化失败了?servernew ServerConnection(conn)conn还是script - Banana
将来请尽量包含任何相关的代码、错误信息的精确文本、您的版本等。话虽如此,对于有用的自我回答给予+1的支持。 - Craig Ringer
好的,谢谢你的建议。 - Za7pi
显示剩余5条评论
1个回答

10
我明白了。这里是答案:

我明白了,以下是答案:

NpgsqlConnection _connPg = new NpgsqlConnection("yourconnectionstring"));

FileInfo file = new FileInfo(HttpContext.Current.Server.MapPath("DatabaseSchema.sql"));
string script = file.OpenText().ReadToEnd();
var m_createdb_cmd = new NpgsqlCommand(script, _connPg);
_connPg.Open();
m_createdb_cmd.ExecuteNonQuery();
_connPg.Close();

1
new NpgsqlConnection("yourconnectionstring")) 中删除多余的闭合括号。 - Anis Alibegić

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接