我正在尝试设计一种方法,允许我使用 SELECT 从 SQL 数据库中获取一行。然后,我想将返回的行插入到驻留在不同服务器上的数据库上的相同表中。
我的服务器连接和 SELECT 语句都有效;我可以在控制台窗口中查看我想要复制的行。
我遇到的问题是弄清楚我需要在 C# 中使用什么数据结构,如何使用 SELECT 填充此数据结构,最后如何使用该数据结构插入行。
我想保留多行的选项,但现在如果我能得到单行传输,那就太棒了。
谢谢你。
编辑:经过大量研究,我自己已经能够解决这个问题。我已将我的代码包含在下面的 heop 中,它可以帮助其他人,但尽管它有效,但它远非理想。我是业余爱好者,还没有完成。
static public void CopyDatabaseRows(string ConnectionStringDEV, string ConnectionStringLOCAL, string queryString)
{
//Connect to first database table to retreive row/rows and populate dataset + datatable.
DataSet dataSet = new DataSet();
SqlConnection conn = new SqlConnection(ConnectionStringDEV);
conn.Open();
SqlCommand command = new SqlCommand(queryString, conn);
DataTable dataTable = new DataTable();
SqlDataAdapter dataAdapter = new SqlDataAdapter(queryString, conn);
dataAdapter.FillSchema(dataSet, SchemaType.Mapped);
dataAdapter.Fill(dataSet, "dbo.FileRegister");
dataTable = dataSet.Tables["dbo.FileRegister"];
conn.Close();
//Connect to second Database and Insert row/rows.
SqlConnection conn2 = new SqlConnection(ConnectionStringLOCAL);
conn2.Open();
SqlBulkCopy bulkCopy = new SqlBulkCopy(conn2);
bulkCopy.DestinationTableName = "dbo.FileRegister";
bulkCopy.WriteToServer(dataTable);
}