C# 将SQL语句的结果转换为列表

C# 将SQL语句的结果转换为列表,c#,sql,C#,Sql,我试图将SQL语句的结果放入表单上的组合框中。我已经在网上搜寻答案了,除此之外我再也找不到更多的答案了: using (SqlCeConnection c = new SqlCeConnection( Properties.Settings.Default.CW2_DBConnectionString)) { c.Open(); List<Visit> rows = new List<Visit>(); SqlCeCommand cmd =

我试图将SQL语句的结果放入表单上的组合框中。我已经在网上搜寻答案了,除此之外我再也找不到更多的答案了:

using (SqlCeConnection c = new SqlCeConnection(
 Properties.Settings.Default.CW2_DBConnectionString))
{
    c.Open();

    List<Visit> rows = new List<Visit>();

    SqlCeCommand cmd = c.CreateCommand();
    cmd.CommandText = "SELECT PICKUP_ID FROM PICKUP";

    c.Open();
    cmd.ExecuteNonQuery();

    SqlCeDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    {

    }

    cmbPickupID.Items.Add(rows);
}

但很明显,它不起作用。VisitID的访问类已设置并获取。有人有什么想法吗?

摆脱
cmd.ExecuteNonQuery()不需要它,是吗

试试这个:

        while (reader.Read())
        {
            cmbPickupID.Items.Add(reader["PICKUP_ID"].ToString());
        }

首先:您不需要
cmd.ExecuteNonQuery()

第二:如果您的
Visit
类具有属性picku\u ID,并且您正在使用
Visit
项目列表,那么您需要将实际的
访问
添加到列表中,而不仅仅是字符串,如下所示:

rows.Add(new Visit () {pickupid = reader["PICKUP_ID"].ToString()});

如果您只需要id,那么您不妨创建一个
列表
。你发布的代码将在那时起作用

我知道你可以使用
反射
和其他一些东西

我建议您使用
Dapper

您可以使用Dapper将一个查询的结果转换为一个类

要使用dapper,请执行以下操作:

1:在
Visual studio
中右键单击您的项目,然后选择
管理Nuget软件包

2:在
联机搜索
文本框中键入Dapper

3:在网上搜索这个DLL后,你就可以安装它了。(你大部分都连接到了互联网)

4:创建您的
域类

   private class DomainClass
   {
        public int Id { get; set; }
        public string Name { get; set; }
        //public int Sex { get; set; }
        public SexEnum sex { get; set; }
   }
5:如果您有一些字段大多数转换为不同类型(枚举类型)的字段 喜欢
Sex
字段

6:创建连接字符串和
sqlConnection
对象:

 var connectionStr = "Server=ArdalanShahgholiPC;Database=Dapper;User Id=sa;Password=sa;";
 SqlConnection sqlConn = new SqlConnection(connectionStr);
7:最后使用
Dapper.SqlMapper
执行查询并将其转换为您的域类

 IList<DomainClass> TestList = Dapper.SqlMapper.Query<DomainClass>(
                                sqlConn, "Select * From ATest").ToList();
IList TestList=Dapper.SqlMapper.Query(
sqlConn,“从ATest中选择*).ToList();

最后,您可以使用
TestList

什么类型的构造函数是
Visit
的?您的SqlCeCommand和SqlCeDataReader都需要在
中使用
块。
 IList<DomainClass> TestList = Dapper.SqlMapper.Query<DomainClass>(
                                sqlConn, "Select * From ATest").ToList();