C# 用c语言将数据库加载到列表中

C# 用c语言将数据库加载到列表中,c#,database,orm,C#,Database,Orm,我正在查询数据库,想知道是否有办法将结果加载回列表。我现在知道如何从数据库中获取信息的唯一方法是在数据表中。我总是可以将其放入数据表中,然后循环遍历数据表中的行,并将它们添加到列表中。但是有没有一种方法可以直接将查询结果放入列表中呢?这是我的代码: OleDbCommand command= new OleDbCommand("SELECT ID, GRADE, PHONE from database WHERE PHONE=123456", conn); conn.Open(); dt.Loa

我正在查询数据库,想知道是否有办法将结果加载回列表。我现在知道如何从数据库中获取信息的唯一方法是在数据表中。我总是可以将其放入数据表中,然后循环遍历数据表中的行,并将它们添加到列表中。但是有没有一种方法可以直接将查询结果放入列表中呢?这是我的代码:

OleDbCommand command= new OleDbCommand("SELECT ID, GRADE, PHONE from database WHERE PHONE=123456", conn);
conn.Open();
dt.Load(command.ExecuteReader());
conn.Close();
结果应为表单id、等级、电话的列表条目:

6126595123456


谢谢,看看这个。

你可以使用表格适配器,例如

DataSet mSet = new DataSet();
OleDbTableAdapter mAdapter = new OleDbTableAdapter(myOleDbCommand); 
mAdapter.Fill(mSet); 
myOleDbCommand.Connection.Close();

假设你有一门课

public ListData()
{
  public int Id{get;set;} //Assuming DB field is int
  public string Grade{get;set;}  //Assuming DB field is a string
  public string PhoneNo{get;set;} //Assuming DB field is a string
}
然后您可以执行以下操作:

list<ListData> theList =(from item in dt.AsEnumerable()
                         Select new ListData()
                              {
                                 Id= (int)item["ID"],
                                 Grade = (string)item["GRADE"],
                                 PhoneNo = (string)item["PHONE"]
                              }
                        ).ToList()
注:

一,。我只是在“注释”文本框中键入它,因此如果您只是复制粘贴代码,可能会出现一些错误


二,。如果GRADE/PHONE上有空值,您还需要处理空值。如果查询返回的行数超过1行,该怎么办?AFIK,您需要调用list的Add方法来添加每个元素。它将只返回一行。这是一个要求如果列表返回一行,为什么需要列表?我错过什么了吗?