2013-10-10 19 views
0

我想弄清楚我是否需​​要额外的逻辑来避免对我的SQL数据库的无用的调用,或者如果SqlDataAdapter.Update()会做正确的事情。如果我有这样的代码:如果我将列值更改为现有值,是否会调用UPDATE?

SqlConnection sqlconn = new SqlConnection(connectionString); 
sqlconn.Open(); 
SqlDataAdapter da = new SqlDataAdapter(selectString, sqlconn); 
SqlDataTable table = new SqlDataTable(); 
da.Fill(table); 
new SqlCommandBuilder(da); 
table.Rows[0][columnName] = 5; // Existing value is already 5 
da.Update(table); 

请问.Update()还叫SQL的UPDATE该行,还是会没有,因为该行没有价值真的改变了吗?

回答

0

它将调用update语句在SQL,因为在DataSet更改值并再次将其设置为相同的,将修改RowState财产。

DataAdapter.Update - MSDN

当应用程序调用的更新的方法,所述DataAdapter的 检查RowState属性,并且执行所需的INSERT, UPDATE,或反复删除语句的每一行的基础上, 在DataSet中配置索引的顺序。

您还可以使用SQL事件探查器进行确认。

相关问题