Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用npgsql执行postgres脚本_C#_Asp.net_Sql_Npgsql_Executenonquery - Fatal编程技术网

C# 使用npgsql执行postgres脚本

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

我有一个创建表的脚本(*.sql)。 我正在使用VisualStudio2010和npgsql访问postgres数据库

我可以从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();

但是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”)
中删除额外的结束括号。