如何从表1中选择数据并将其插入PostgresQLusing C#中的表2中

时间:2018-11-13 09:07:11

标签: c# postgresql

我正在尝试使用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();
 }
}

预先感谢!

1 个答案:

答案 0 :(得分:0)

您不是这样做的,而是用一个命令(效率更高):

“将inert插入table2(t21,t22)从table1中选择t11m t12”

这样做还可以解决错误“命令已在执行中”。