我正在尝试使用Visual Studio代码上的C#从一个表中获取数据并将其插入Postgres上的另一个表中。 我不断收到此错误:
An unhandled exception of type 'Npgsql.NpgsqlOperationInProgressException' occurred in System.Private.CoreLib.dll: 'A command is already in progress:
我正在猜测这是因为我的代码尝试使用该连接,因为第一个查询正在使用该连接。但是,我不知道如何解决。
这是我下面的代码-原谅任何菜鸟错误,这是我第一次使用C#做到这一点。
using System;
using Npgsql;
class Sample
{
static void Main(string[] args)
{
// Specify connection options and open an connection
NpgsqlConnection conn = new NpgsqlConnection("Server=xxxxxxxx;User
Id=xxxxxxx;" +
"Password=xxxxxxx;Database=xxxxxxxx;");
conn.Open();
//Define select query
NpgsqlCommand cmd = new NpgsqlCommand("select * from table1", conn);
// Execute a query
NpgsqlDataReader dr = cmd.ExecuteReader();
//Define Insert query
NpgsqlCommand cmd1 = new NpgsqlCommand("insert into table2
values(dr[0],dr[1])", conn);
// Read all rows and output the first column in each row
while (dr.Read())
cmd1.ExecuteNonQuery();
// Close connection
conn.Close();
}
}
预先感谢!
答案 0 :(得分:0)
您不是这样做的,而是用一个命令(效率更高):
“将inert插入table2(t21,t22)从table1中选择t11m t12”
这样做还可以解决错误“命令已在执行中”。