SQL 쿼리 배치에서 변수 이름 충돌
SQL 쿼리를 실행할 때 배치 또는 저장 프로시저 내에서 변수 이름의 고유성을 보장하는 것이 중요합니다. . "변수 이름 '@'이 이미 선언되었습니다"라는 오류는 동일한 이름을 가진 여러 변수가 정의되었음을 나타냅니다.
이 문제를 해결하려면 제공된 코드 블록에 집중하세요.
private void btn_lock2_Click(object sender, EventArgs e) { // ... for (long counter = from; counter <= to; counter++) { string upd = "update card set LockState=@lockstate, card_descr=@card_descr where [cardNumber] = N'{0}'"; rwd.command.CommandText = upd; rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar)).Value = 1; rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar)).Value = txt_desc2.Text; // ... } }
실수는 루프 내에서 반복적으로 매개변수를 추가하는 데 있습니다. 대신 매개변수 생성을 루프 외부로 이동하세요.
// Moved outside the loop 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++) { // ... rwd.command.Parameters["@LockState"].Value = 1; rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text; // ... }
또는 루프 내에서 매개변수 지우기를 고려하세요.
for (long counter = from; counter <= to; counter++) { rwd.command.Parameters.Clear(); // ... }
다음 권장 사항을 따르면 오류를 제거하고 SQL 쿼리에서 변수 이름의 고유성.
위 내용은 SQL 쿼리 일괄 처리에서 '변수 이름 '@'이 이미 선언되었습니다.' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!