2011-04-09 4 views
0

안녕하세요. MySqlDataReader으로 읽는 데 문제가 있습니다. while()if()으로 변경하려고 시도한 결과 작동했습니다. 그래서 while (Reader.Read())과 함께 뭔가 잘못하고 있어요. 대답 해줘서 고마워요.MySqlDataReader로 읽기

using (MySqlCommand cmd = new MySqlCommand 
     ("SELECT * FROM `citationer`", mysqlCon)) 
{ 
    try 
    { 
     MySqlDataReader Reader = cmd.ExecuteReader(); 
     while (Reader.Read()) // this part is wrong somehow 
     { 
      citationstexter.Add(Reader.GetString(loopReading)); // this works 
      loopReading++; // this works 
     } 
     Reader.Close(); 
    } 

    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+1

당신이 할 수있는 페이지 예외 사항을 알려주십시오. 나에게 좋을 것 같다. –

답변

4

귀하의 문제가 GetStringloopReading 매개 변수를 사용하는 것입니다 (오늘이 고정되어 다른 질문을 댓글, 누군가가 XD 도와주었습니다). 이 매개 변수는 0부터 시작하는 열 서수 (열 번호) 여야하지만 읽은 모든 행에 대해 증가시킵니다.

더 많은 정보를 원하시면 여기를 참조하십시오 : 이 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getstring.aspx

당신은 두 번째 열에 대한 citationer 테이블 1의 첫 번째 열에 0을 사용해야하는 등

또한,이

를 사용하는 것이 좋습니다이야
using(MySqlDataReader Reader = cmd.ExecuteReader()) 
    { 
    ... 
    } 

는 메모리 누수를 저장하는 mySqlCommand 객체에 그랬던 것처럼 (하지만이 문제가 아닙니다.)