2013-10-10 12 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

그것은 DataSet의 값을 변경하고 다시 동일로 설정하기 때문에, RowState 속성을 수정합니다, SQL의 UPDATE 문을 호출합니다.

애플리케이션은 Update 메소드 호출

DataAdapter.Update - MSDN데이터 어댑터 는 에 기반의 RowState 속성을 검사하고 필요한 INSERT, UPDATE를 실행 또는 각 행에 대해 반복적으로 문을 삭제 DataSet에 구성된 인덱스의 순서.

SQL 프로파일 러를 사용하여 확인할 수도 있습니다.