다음 INSERT
쿼리가 성공했는지 어떻게 알 수 있습니까?쿼리가 성공했는지 확인하는 방법은 무엇입니까?
Reader.Read()
을 실행하려고했지만 빈 문자열 만 반환됩니다. 감사.
다음 INSERT
쿼리가 성공했는지 어떻게 알 수 있습니까?쿼리가 성공했는지 확인하는 방법은 무엇입니까?
Reader.Read()
을 실행하려고했지만 빈 문자열 만 반환됩니다. 감사.
INSERT, UPDATE 또는 DELETE를 수행하는 경우 ExecuteReader를 사용하지 마십시오. 대신 ExecuteNonQuery를 사용하면 영향을받는 행 수를 반환합니다.
대신 ExecuteNonQuery
사용을 참조하십시오 :
int affectedRows = command.ExecuteNonQuery();
if (affectedRows <= 0)
{
// Houston, we have a problem.
}
이 명심, 당신이 INSERT
에 시도 된 실제 행 수를 반영하지 않을 수 있습니다
ExecuteNonQuery
을 사용하면 모든 유형의 데이터베이스 작업을 수행 할 수 있지만 반환 된 결과 집합을 사용할 수 없습니다. 저장 프로 시저를 호출 할 때 사용되는 출력 매개 변수에는 데이터가 채워지고 실행이 완료된 후에 검색 할 수 있습니다.UPDATE
,INSERT
및DELETE
문에 대해 반환 값은 명령에 의해 영향을받는 행 수입니다. 다른 모든 유형의 명령문의 경우 반환 값은-1
입니다.
그러나 일반적으로 쿼리에 오류가 발생하면 MySqlException
이 표시됩니다.
sixlettervariables! 감사합니다! – dotancohen
실패 할 경우 예외가 발생합니다. 예외 개체에는 일반적으로 잘못된 정보 (예 : '기본 키 위반'등)가 들어 있습니다.
또한 INSERT, UPDATE 또는 DELETE에는 ExecuteNonQuery
을 사용하십시오. 리턴 된 값은 영향을받은 행의 수를 포함합니다.
감사합니다. Branko. – dotancohen
데이터베이스를 쿼리 할 때만 SqlDataReader를 사용하고 SqlDataReader는 빨리 감기 전용 포인터이므로 쿼리에 권장되므로 SqlCommand의 ExecuteNonQuery() 메서드를 다음 코드와 같이 사용하십시오 :
using (SqlConnection conn = new SqlConnection("[QueryString]")) {
using (SqlCommand cmd = new SqlCommand("SQL Command",conn)) {
//here you return the number of affected rows
int a = cmd.ExecuteNonQuery();
}
}
나는 이것이 당신을 도울 수 있기를 바랍니다.
감사합니다. 필요한 것 같습니다. – dotancohen