본문 바로가기
MySql

MySQL C #을 사용하는 MySQL에 대한 매개 변수화 된 쿼리

by 베이스 공부 2020. 10. 5.
반응형

아래 코드가 있습니다 (관련 섹션이 모두 포함되어 있음).

private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = ? AND VAL_@ = ?;";
public bool read(string id)
{
    level = -1;
    MySqlCommand m = new MySqlCommand(readCommand);
    m.Parameters.Add(new MySqlParameter("", val1));
    m.Parameters.Add(new MySqlParameter("", val2));
    MySqlDataReader r = m.ExecuteReader();
    if (r.HasRows)
        level = Convert.ToInt32(r.GetValue(0).ToString());
    r.Close();
    return true;
}

이것을 실행하면 첫 번째 매개 변수를 추가 할 때 IndexOutOfBoundsException이 발생합니다. 내가 뭘 잘못 했어?

 

해결 방법

 

대신 이것을 시도하십시오.

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;
}

 

참조 페이지 https://stackoverflow.com/questions/652978

 

 

반응형

댓글