关于dataAdapter.Update(dt)不成功的问题
dt是一个表 , 里面的内容为数据库中目前的信息
dataTable是和dt相同解构的表,我想用dataTable中的内容替换掉dt中的内容,
然后更新回数据库,可是就是不成功!
int resultCount = 0;
DataTable dt = new DataTable();
using (SqlConnection sqlconnection = new SqlConnection(connString))
{
if (sqlconnection.State != ConnectionState.Open)
sqlconnection.Open();
SqlTransaction sqltransaction = sqlconnection.BeginTransaction();
SqlCommand cmd = new SqlCommand(selectText, sqlconnection, sqltransaction);
PrepareCommand(cmd, CommandType.Text, cmdParms);
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
try
{
dataAdapter.Fill(dt);
dt.Clear();
foreach (DataRow dr in dataTable.Rows)
{
dt.ImportRow(dr);
}
dt.GetChanges();
dt.AcceptChanges();
resultCount = dataAdapter.Update(dt);//这里dt已经是新数据了。
sqltransaction.Commit();
return resultCount;
}
catch (Exception exp)
{
sqltransaction.Rollback();
throw exp;
}
[解决办法]
去掉下面2句:
dt.GetChanges();
dt.AcceptChanges();
[解决办法]
其实你不需要这样导入
只需要 dt.Merge(dataTable);