附加到列表<string>

时间:2017-01-18 23:24:03

标签: c# arrays sqldatareader

使用C#如何附加到List<string>?我想运行两个单独的SQL查询并将结果存储在我的List<string>中。第一个查询返回

  比尔和乔

第二个查询返回

  詹姆斯和查尔斯

但我的Console.WriteLine()仅生成BillJoe

我的语法设置不正确,是为了发生这种情况?

public static List<string> tempList = new List<string>();

static void Main(string[] args)
{   
  string qs = "Select Top 2 firstname from thistable";
  //
  GetFirstSetOfData(qs);

  string bc = "Select Top 2 firstname from thattable";
  //
  GetFirstSetOfData(bc);

  foreach (string tumble in tempList)
    Console.WriteLine(tumble);
}

private static void GetFirstSetOfData(string query)
{
  connection = new SqlConnection(ConnectionString);
  {
    cmd = new SqlCommand(queryString, connection);
    connection.Open();
    reader = cmd.ExecuteReader();
    while (reader.Read())
        tempList.Add(reader.GetValue(0).ToString());
    reader.Close();
  }
}

1 个答案:

答案 0 :(得分:0)

我的猜测是它可能与SQLConnection有关。最好在Main方法中初始化SQLConnection,而不是尝试第二次连接到同一个数据库。此外,一旦完成,SQLConnection应该被处理掉。确保发生这种情况的简单方法是将事物包装在using语句中,如下所示:

using (connection = new SQLConnection(connectionString))
{
    connection.Open();
    //do all your queries and things
}

您可以在MSDN上看到一个优秀的完整示例:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.close(v=vs.110).aspx

试一下,看看它是否有效。我认为问题是你在同一个连接上尝试连接两次。可能是错的,因为我在c#中使用了sql,已经有一段时间了。