C# 使用npgsql执行postgres脚本
我有一个创建表的脚本(*.sql)。 我正在使用VisualStudio2010和npgsql访问postgres数据库 我可以从codebehind执行脚本吗 这是我尝试过的代码:C# 使用npgsql执行postgres脚本,c#,asp.net,sql,npgsql,executenonquery,C#,Asp.net,Sql,Npgsql,Executenonquery,我有一个创建表的脚本(*.sql)。 我正在使用VisualStudio2010和npgsql访问postgres数据库 我可以从codebehind执行脚本吗 这是我尝试过的代码: string sqlConnectionString = @"myconnection"; FileInfo file = new FileInfo(@"myfile.sql"); string script = file.OpenText().ReadToEnd(); NpgsqlConnection co
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();
但是VisualStudio不能识别服务器,我知道了。答案如下:
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();
您可以将其保存为数据库中的存储过程,并从后面的代码调用它,因为我将在许多不同的数据库中执行。我更喜欢从应用程序中执行它。您可以将查询保存在文本文件中,并将其作为字符串加载到数据库中执行。如果将其保存在文本文件中,我已尝试将其转换为npgsql连接器,但没有成功……您能发布您尝试过的完整代码吗?屏蔽ip和其他个人信息,如果可能的话,我只想看看逻辑。还可以尝试执行一个简单的insert查询,以排除脚本失败的可能性在
新的NpgsqlConnection(“yourconnectionstring”)
中删除额外的结束括号。