2014-12-11 4 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

что такое 'читатель'? Пожалуйста, добавьте несколько подробностей, чтобы полностью описать, что вы делаете. – 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(); 

Я хотел бы также предложить бросать в некоторых с использованием блоков вокруг соединения, команды и читателя.

Смежные вопросы