【问题标题】:get List<myModel> from DataTable [duplicate]从 DataTable 中获取 List<myModel> [重复]
【发布时间】:2018-11-18 20:17:42
【问题描述】:

我正在尝试从 DataTable 获取 myModel 列表。可以确定 myModel 匹配 DataTable 中的字段。

例如DataTable如下:

Name  id
Trump  1
Obama  0

myModel如下:

class user{
    public string name { get; set; }
    public long id{ get; set; }
}

我知道如何使用 DataAdapter 获取 DataRow 列表。但我仍然需要手动将 datarow 中的值逐列转换为 myModel。

现在,我只能从 dataReader 中手动获取 myModel 的列表,这很愚蠢。

public List<user> get_users(string user_name)
{
    var user_list = new List<user>();
    using (SqlConnection connection = new SqlConnection(connStr))
    {
        connection.Open();
        using (SqlCommand cmd = new SqlCommand("exec select_user @name='" + + "'", connection))
        {
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                user_list.Add(new user()
                {
                    id = Convert.ToInt64(reader["id"]),
                    name = Convert.ToString(reader["name"]),
                });
            }
        }
        connection.Close();
    }
    return user_list;
}

【问题讨论】:

    标签: c# sql asp.net sql-server ado.net


    【解决方案1】:

    您要么手动完成,要么使用对象关系映射技术,如 Microsoft 的 Entity Framework 或另一种如 NHibernate。

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 1970-01-01
      • 2020-03-02
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多