C# 如何在服务器A上插入来自服务器B上选择数据的数据?

C# 如何在服务器A上插入来自服务器B上选择数据的数据?,c#,database,C#,Database,情景: 我有一个开发服务器a,我需要从ServerB tableA插入表a中的数据 SERVERA.TableA:serialnumber = empty,partnumber=empty 例: 数据库连接字符串1 Select serialnumber,partnumber from ServerB.TableA where (serialnumber='1') 然后 数据库连接字符串2 Insert into serialnumber,partnumber from SERVERA.Ta

情景:

我有一个开发服务器a,我需要从ServerB tableA插入表a中的数据

SERVERA.TableA:serialnumber = empty,partnumber=empty
例:

数据库连接字符串1

Select serialnumber,partnumber from ServerB.TableA where (serialnumber='1')
然后

数据库连接字符串2

Insert into serialnumber,partnumber from SERVERA.TableA 
结果:

SERVERA.TableA:serialnumber = 1,partnumber=2

如果您使用的是Sql Server,则可以使用来提供所需的工具,然后可以在ServerB上执行以下代码:

INSERT INTO [dbo].[TableA]
(
 SerialNumber,
 PartNumber
)
SELECT SerialNumber,
       PartNumber
FROM [ServerA].[DatabaseNameOnServerA].[dbo].[TableA]
WHERE SerialNumber = '1'
如果您不能使用链接服务器,或者希望/需要使用代码,那么这也相当简单:

using (var connection = new SqlConnection(connectionStringForServerA)
{
  connection.Open();
  var query = "SELECT SerialNumber, PartNumber FROM [dbo].[TableA] WHERE SerialNumber = '1'";
  using (var adapter = new SqlDataAdapter(query, connection);
  {
    var data = new DataTable();
    adapter.Fill(data);

    using (var connectionB = new SqlConnection(connectionStringForServerB)
    {
       var query = "INSERT INTO [dbo].[TableA] (SerialNumber, PartNumber) VALUES (@Serial, @Part)";
       foreach(DataRow recordFromServerA in data.Rows)
       {
         using(var command = new SqlCommand(query, connectionB)
         {
           command.Parameters.AddWithValue("@Serial", recordFromServerA["SerialNumber"]);
           command.Parameters.AddWithValue("@Part", recordFromServerA["PartNumber"]);

           command.ExecuteNonQuery();
         }
       }
    }
  }
}

有更有效的方法来执行插入,但是让代码像我在那里做的那样准确地说明它在做什么,应该让您非常清楚它是如何工作的(值得注意的是,我还没有实际运行我给出的代码示例,因此可能需要一些调整,它也是特定于Sql Server的).

您有哪些问题?问题是什么?哦,还有一件事,我还需要将excel文件插入servertableA(我使用openrowset完成),但我需要将其引用到ServerB TableA,然后将其插入ServerA.TableA。这是一个完全不同的问题,与它的声音完全不同!在您最初的问题或我的回答中,没有任何与从Excel插入数据有丝毫关系的内容。