如何在asp.net中的数组中存储列值

时间:2014-12-11 09:19:35

标签: mysql asp.net

我在asp.net中编写代码。我在数据库中有一个名为c_name的列。我想将所有列值存储在一个数组中。这是我不完整的代码。我很困惑这里要做什么。

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())
{

}

请帮忙。

2 个答案:

答案 0 :(得分: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>();

答案 1 :(得分:0)

我怀疑你的一个问题是这一行:

cmd.ExecuteNonQuery();

您实际执行cmd两次,一次使用此行,再次创建阅读器时再次执行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();

我还建议在连接,命令和阅读器周围使用一些块。