在这种情况下,是否应该组合SQL命令
我有以下c#代码: 基本上,我从TableA/Database1中选择一行,并将其插入TableA/Database2 然后,我再次打开连接并从TableB/Database1中选择多行(使用从TableA/Database1检索的newID)并插入TableB/Database2 我的问题是这样做是否正确?还是应该把这些结合起来?如果这些应该结合起来,谁能告诉我实现这一目标的最佳方法在这种情况下,是否应该组合SQL命令,sql,c#-4.0,Sql,C# 4.0,我有以下c#代码: 基本上,我从TableA/Database1中选择一行,并将其插入TableA/Database2 然后,我再次打开连接并从TableB/Database1中选择多行(使用从TableA/Database1检索的newID)并插入TableB/Database2 我的问题是这样做是否正确?还是应该把这些结合起来?如果这些应该结合起来,谁能告诉我实现这一目标的最佳方法 int newID = 0; using (var con1 = new SqlConnection(conS
int newID = 0;
using (var con1 = new SqlConnection(conString1))
using (var con2 = new SqlConnection(conString2))
{
con1.Open();
con2.Open();
using (var selectCommand = new SqlCommand(sqlSelect, con1))
{
using (var reader = selectCommand.ExecuteReader())
{
try
{
if (reader != null)
if (reader.Read())
{
using (var insertCommand = new SqlCommand(sqlInsert, conTarget))
{
for (int i = 0; i < reader.FieldCount; i++)
{
insertCommand.Parameters.AddWithValue(
"@" + reader.GetName(i), reader[i]);
}
newID = (int)insertCommand.ExecuteScalar();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
reader.Close();
}
}
}
}
我会这样做:
如果需要进一步帮助,请告诉我。两个数据库都在同一台服务器上?在这种情况下,如何同时运行两个sql命令?我是否可以使用using语句并在一个连接下运行两个命令?你能给我看一些代码吗?
using (var con1 = new SqlConnection(ConString1))
{
con1.Open();
var cmd = new SqlCommand(query , con1);
var reader = cmd.ExecuteReader();
using (var con2 = new SqlConnection(conString2))
{
con2.Open();
using (var sbc = new SqlBulkCopy(conString2))
{
sbc.BulkCopyTimeout = 2000;
sbc.DestinationTableName = "student";
try
{
if (reader != null)
sbc.WriteToServer(reader);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
reader.Close();
}
}
}
}