2014-12-25 69 views
0

我正在将数据从数据库加载到c#控制台应用程序,但我应该如何将它们放在列表中。如何将数据加载到列表

我的代码

using (SqlConnection sourceConnection = 
         new SqlConnection(connectionString)) 
      { 
       sourceConnection.Open(); 

       SqlDataReader myReader = null; 

       SqlCommand myCommand = new SqlCommand(
        "SELECT * FROM " + 
        "dbo.Users;", 
        sourceConnection); 

       myReader = myCommand.ExecuteReader(); 

       //long countStart = System.Convert.ToInt32(myCommand.ExecuteScalar()); 
       while (myReader.Read()) 
       { 
        Console.WriteLine(myReader["Id"].ToString()); 
        Console.WriteLine(myReader["Name"].ToString()); 
       } 

的一部分,我让他们打印到控制台上,但我应该怎么把他们的清单上。

var listOfUsers = new List<User>(); 
+0

不是一个DataReader,如果你填充DataSet/DataTable中的结果,你可以使用该容器而不是创建并填充新容器。 – Plutonix

回答

3

让我们假设你有一个用户类,它表示的类型列表中的元素。

public class Users 
{ 
    public string Id { get; set; } 

    public string Name { get; set; } 
} 

然后你就可以在你的方法将它们添加到列表中,将由两列表示:

public void addUsersToList() 
{ 

    using (SqlConnection sourceConnection = 
        new SqlConnection(connectionString)) 
     { 
      sourceConnection.Open(); 

      SqlDataReader myReader = null; 

      SqlCommand myCommand = new SqlCommand(
       "SELECT * FROM " + 
       "dbo.Users;", 
       sourceConnection); 

      myReader = myCommand.ExecuteReader(); 

      //long countStart = System.Convert.ToInt32(myCommand.ExecuteScalar()); 
      List<Users> myList = new List<Users>(); 
      while (myReader.Read()) 
      { 
       myList.Add(new Users { Id = myReader["Id"].ToString(), 
          Name = myReader["Name"].ToString() }); 
      } 

     } 
} 
+0

我正在测试您的代码,但视觉工作室不接受: Id = myReader [“Id”]。ToString(), 它说Id不能转换为字符串? – Amehiny

+0

你确定你的SQL表中实际上有一个“Id”列吗?我已经在Visual Studio中再次尝试过了,它没有任何问题。请再次检查您的SQL表列。 –

2

没有太多别的,你可以做,但创建一个用户,填补它的属性,并将其添加到列表...

  while (myReader.Read()) 
      { 
       User user = new User(); 
       user.Id = myReader["Id"].ToString(); 
       user.Name = myReader["Name"].ToString(); 
       listOfUsers.Add(user); 
      } 
+0

是的,但我已经有我的数据库上的用户。我只需要将它们添加到列表中 – Amehiny