집 >데이터 베이스 >MySQL 튜토리얼 >내 SQL 쿼리에서 '변수 이름 '@'이 이미 선언되었습니다.' 오류가 발생하는 이유는 무엇입니까?
SQL 쿼리에서 "변수 이름 '@'이 이미 선언되었습니다" 오류
SQL 쿼리를 실행할 때 다음 사항을 확인하는 것이 중요합니다. 쿼리 일괄 처리 또는 저장 프로시저 내에서 선언된 변수 이름은 고유합니다. 이 오류는 '@' 접두사를 사용하여 변수 대체를 사용할 때 자주 발생합니다.
오류 원인
제공된 코드에서 '@LockState'의 두 번째 인스턴스 매개변수 컬렉션에서 오류가 발생합니다. 이는 동일한 쿼리 내에서 각 매개변수가 고유한 이름을 가져야 하기 때문입니다.
해결 방법
이 오류를 해결하려면 다음 해결 방법 중 하나를 구현하세요.
각 루프 반복 후에 rwd.command.Parameters.Clear()를 사용하여 이전에 추가된 매개변수를 제거하고 다음 반복이 새 세트로 시작되도록 합니다.
for (long counter = from; counter <= to; counter++) { rwd.command.Parameters.Clear(); // ... (remaining code) }
루프 외부에 매개변수를 선언하고 루프 내에 값을 할당합니다. 이렇게 하면 매개변수가 한 번만 정의됩니다.
rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar)); rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar)); for (long counter = from; counter <= to; counter++) { // ... (remaining code) rwd.command.Parameters["@LockState"].Value = 1; rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text; }
이 단계를 수행하면 쿼리에서 고유한 변수 이름을 보장하여 "변수 이름 '@'이 이미 선언되었습니다." 오류를 방지하고 원활한 실행.
위 내용은 내 SQL 쿼리에서 '변수 이름 '@'이 이미 선언되었습니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!