C# using System.Data.SqlClient;
을 사용하여 SQL 테이블에서 데이터를 쿼리하려고합니다. 내가 문제없이 SELECT * FROM table
수 있습니다. 내 문제는 데이터 유형으로 인한 것일 수 있으며 실수로 일부 변수를 잘못 캐스팅 한 것으로 의심됩니다. 내가 얻는 오류는 다음과 같습니다. 데이터가 없을 때 데이터를 읽으려는 시도가 잘못되었습니다.SQL 선택 쿼리 선택하지 않음
더 자세한 사항 : 내 SQL 테이블에
는 열 1 및 COLUMN3는 int 타입이다. Column2와 Column4는 char (1) 유형입니다. Column5는 decimal (5,4) 유형입니다.
다음 코드에서 문제를 확인 하시겠습니까?
public void Score(List<Tuple<int, char>> myList)
{
int myColumn1 = myList[0].Item1;
char myColumn2 = myList[0].Item2;
int myColumn3 = myList[1].Item1;
char myColumn4 = myList[1].Item2;
myConnection.Open();
SqlCommand myCommand = new SqlCommand("SELECT * FROM table" +
" WHERE Column1 = " + myColumn1 +
" AND Column2 = '" + myColumn2 +
"' AND Column3 = " + myColumn3 +
" AND Column4 = '" + myColumn4 + "'", myConnection);
SqlDataReader myReader = null;
myReader = myCommand.ExecuteReader();
Console.Out.WriteLine(myReader[5].ToString());
}
고마워요!
당신이 initiazed 한 mycommand 어떤 이유로 injectioin SQL을 피하기 위해 쿼리를 paremeterized 그 – qamar
당신은 SQL에 대한 매개 변수를 사용하여 조사해야합니다. 지금까지 작성한 작업을 SQL 주입 공격에 개방하고 있습니다. – Robbert
http://stackoverflow.com/questions/1147615/invalid-attempt-to-read-when-no-data-is-present, http://stackoverflow.com/questions/18744949/invalid-attempt-to -read-data-when-no-data-is-present, http://stackoverflow.com/questions/19864837/invalid-attempt-to-read-when-no-data-is-present-in-asp-net , http://stackoverflow.com/questions/4628698/invalid-attempt-to-read-when-no-data-is-present-in-dr, http://stackoverflow.com/questions/11549515/datareader-invalid - 데이터가없는 경우 읽기 - 시도 - 및 기타. – Nathan