2011-09-05 2 views
0

는 내가 영향을받는 기록 얻으려고하지만 항상 나에게 -1 줄SQL을 사용하여 VB.net 2010에서 영향을받는 레코드를 얻는 방법?

다음

내 코드입니다 :

cmd.CommandText = "SELECT * FROM persons" 
Dim lrd As SqlDataReader = cmd.ExecuteReader() 
MessageBox.Show(lrd.RecordsAffected) 

문제는 무엇인가는?

감사합니다.

+0

RecordsAffected 속성은 변경/삽입/삭제 된 행 수를 반환합니다. 영향을받은 행이 없거나 명령문이 실패한 경우 0. SELECT 문은 -1입니다. – adatapost

답변

4

SELECT 문을 수행 할 때 데이터베이스에 영향을주는 것은 없습니다. 행 수를 계산하려면 SELECT count(*) FROM persons을 사용하고 ExecuteReader() 대신 ExecuteScalar()을 사용하십시오. 마지막으로 INSERT, UPDATE 또는 DELETE를 사용하여 데이터베이스의 내용에 실제로 영향을 미치는 경우 ExecuteNonQuery()을 사용하면 데이터베이스에서 영향을받은 행 수를 반환합니다.

+0

감사합니다. 그것은 효과가 있었다. – Hani

관련 문제