C# 将SQL语句的结果转换为列表
我试图将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 =
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();