> 데이터 베이스 > MySQL 튜토리얼 > C#의 MySQL 매개 변수화된 쿼리에서 IndexOutOfBoundsException이 발생하는 이유는 무엇입니까?

C#의 MySQL 매개 변수화된 쿼리에서 IndexOutOfBoundsException이 발생하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-25 17:06:17
원래의
959명이 탐색했습니다.

Why Does My MySQL Parameterized Query in C# Throw an IndexOutOfBoundsException?

C#을 사용한 MySQL의 매개변수화된 쿼리

이 질문은 C#에서 MySQL과 함께 매개변수화된 쿼리를 사용할 때 발생하는 일반적인 문제를 해결합니다. 제공된 코드에는 문제를 일으키는 코드의 관련 부분이 포함되어 있습니다.

질문:

코드 조각에는 두 개의 물음표(?)가 있는 매개변수화된 쿼리가 포함되어 있습니다. 매개변수 값에 대한 자리 표시자입니다. 그러나 첫 번째 매개변수를 추가할 때 사용자는 IndexOutOfBoundsException을 경험합니다. 코드에 어떤 문제가 있습니까?

답변:

제공된 코드는 매개 변수가 있는 쿼리로 MySqlCommand 개체를 초기화하지만 자리 표시자 물음표에는 "@ 접두사가 붙지 않습니다. " 문자는 MySQL의 명명된 매개변수에 필요합니다. 수정된 코드는 다음과 같습니다.

private String readCommand = 
             "SELECT LEVEL FROM USERS WHERE VAL_1 = @param_val_1 AND VAL_2 = @param_val_2;";

public bool read(string id)
{
    level = -1;
    MySqlCommand m = new MySqlCommand(readCommand);
    m.Parameters.AddWithValue("@param_val_1", val1);
    m.Parameters.AddWithValue("@param_val_2", val2);
    level = Convert.ToInt32(m.ExecuteScalar());
    return true;
}
로그인 후 복사

이 수정된 코드에서:

  • readCommand 문자열은 "@param_name" 구문과 함께 명명된 매개 변수를 사용하도록 수정되었습니다.
  • AddWithValue 메소드는 명령에 매개변수를 추가하는 데 사용되며 매개변수 이름이 쿼리.
  • ExecuteScalar 메소드는 쿼리를 실행하고 단일 스칼라 값(이 경우 레벨)을 검색하는 데 사용됩니다.

위 내용은 C#의 MySQL 매개 변수화된 쿼리에서 IndexOutOfBoundsException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿