2014-12-11 2 views
1

asp.net에 코드를 작성하고 있습니다. 데이터베이스에 c_name이라는 열이 있습니다. 모든 열 값을 배열에 저장하려고합니다. 여기 내 불완전한 코드가 있습니다. 나는 여기서 무엇을해야하는지 혼란 스럽다.asp.net의 배열에 열 값을 저장하는 방법

String str = "select c_name from contacts where user_id = " + user_id + ""; 

MySqlCommand cmd = new MySqlCommand(str, dbConnection); 
cmd.ExecuteNonQuery(); 

MySqlDataReader mdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 

while (mdr.Read()) 
{ 

} 

도와주세요. 코드 아래

답변

1

확인 : 나는 당신의 문제 중 하나 의심

String str = "select c_name from contacts where user_id = " + user_id + ""; 
    MySqlCommand cmd = new MySqlCommand(str, dbConnection); 
    MySqlDataReader mdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 

    List<string> list = new List<string>(); 
    while (mdr.Read()) 
    { 
     list.Add(mdr.GetString(0)); 
    } 

    string[] strMyArray = list.ToArray<string>(); 
+0

무엇이'reader'입니까? 당신이하고있는 일을 완전히 묘사하기 위해 좀 더 자세한 내용을 추가하십시오. – Mivaweb

+0

또한 ExecuteNonQuery()가 거기에 있고 싶지 않고 우연히 OP에서 복사했음을 의심합니다. – Liath

+1

@Liath 네 말이 맞아요. 내 대답을 편집했습니다. –

0

이 라인 :

cmd.ExecuteNonQuery(); 

당신은 실제로 한 번 다시 한 번이 라인과 두 번 cmd를 실행 할 때 당신을 독자를 만드십시오. 또한 결과를 목록의 요소에 복사하는 약간의 코드를 추가했습니다. 다음을 시도하십시오.

string str = "select c_name from contacts where user_id = " + user_id + ""; 

MySqlCommand cmd = new MySqlCommand(str, dbConnection); 

MySqlDataReader mdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 

// create a list to hold the results in 
List<string> results = new List<string>(); 
while (mdr.Read()) 
{ 
    // for each row read a string and add it in 
    results.Add(mdr.GetString(0)); 
} 

배열을 요청했습니다. 목록을 사용하기가 쉽습니다. 배열이 정말로 필요한 경우 다음을 호출하십시오.

var theArray = results.ToArray(); 

또한 연결, 명령 및 판독기를 사용하여 일부 블록을 사용하는 것이 좋습니다.

관련 문제