我可以使用sqlbulk复制将没有主键的表的记录更新到远程。我可以使用相同的主键表吗?
public bool PublishMealDealDetail()
{
bool isUpdated = true;
try
{
DataTable dtLocal = libEPOS.cMealDeal.GetAllMealDealDetailsDTForExport();
if (dtLocal.Rows.Count > 0)
{
//truncate table on web
string sqlTrunc = "TRUNCATE TABLE MealDealDetail";
SqlCommand cmd = new SqlCommand(sqlTrunc, connWeb, transaction);
// connWeb.Open();
cmd.ExecuteNonQuery();
SqlBulkCopy bulkcopy = new SqlBulkCopy(connWeb);
bulkcopy.DestinationTableName = "MealDealDetail";
try
{
bulkcopy.WriteToServer(dtLocal);
}
catch (Exception e)
{
transaction.Rollback();
isUpdated = false;
Console.WriteLine(e.Message);
}
}
}
catch (Exception ex)
{
transaction.Rollback();
isUpdated = false;
throw ex;
}
return isUpdated;
}
System.Data.SqlClient.SqlBulkCopyOptions.KeepIdentity
在更新表时,U可以利用它来保持一个源到另一源的身份。
此处的MSDN:http : //msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopyoptions( v= vs.110).aspx
System.Data.SqlClient.SqlBulkCopy bulkcopy = new System.Data.SqlClient.SqlBulkCopy(connWeb,System.Data.SqlClient.SqlBulkCopyOptions.KeepIdentity);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句