C#을 사용하는 MySQL용 매개변수화된 쿼리
SQL 쿼리 작업 시 매개변수화된 쿼리를 사용하는 것이 좋습니다. 문자열 값을 연결할 필요가 없어 SQL 주입 공격을 방지하고 성능을 향상시킵니다.
그러나 C#에서 MySQL로 매개변수화된 쿼리를 사용할 때는 코드가 올바르게 구성되었는지 확인하는 것이 중요합니다. 발생할 수 있는 잠재적인 오류 중 하나는 첫 번째 매개변수를 추가할 때 IndexOutOfBoundsException입니다.
문제:
주어진 코드에서:
private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = ? AND VAL_@ = ?;";
문제는 매개 변수의 자리 표시자로 물음표(?)를 사용하는 쿼리 문자열에 있습니다. MySQL은 물음표를 매개변수 자리 표시자로 인식하지 않습니다. '@' 접두사가 붙은 명명된 매개 변수가 필요합니다.
해결 방법:
문제를 해결하려면 명명된 매개 변수를 사용하도록 쿼리 문자열을 수정하고 AddWithValue() 메서드를 사용하여 MySqlCommand 개체에 대한 매개 변수:
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; }
사용 명명된 매개 변수와 AddWithValue() 메서드를 사용하면 IndexOutOfBoundsException이 발생하지 않고 쿼리가 성공적으로 실행됩니다.
위 내용은 C#에서 MySQL로 매개변수화된 쿼리를 사용할 때 IndexOutOfBoundsException을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!