【问题标题】:Populate List<T> using Dataset? [closed]使用数据集填充 List<T>? [关闭]
【发布时间】:2017-10-06 11:18:38
【问题描述】:

我有一堂课Book:

public class Book
{
    public int ID;
    public string BookName;
    public List<string> BookImageUrl;
}

我想从返回 IDBookName 和一本书的多个图像的数据集中填充这个类。

【问题讨论】:

  • JSON 什么时候在这里发挥作用?到目前为止,您尝试过什么?
  • 您可以使用 EntityFramework 为数据库创建上下文并填充 Book 对象。 entityframeworktutorial.net 您可以使用 JSON Converter 稍后将 Book 对象转换为 JSON。 newtonsoft.com/json/help/html/…
  • 但我想使用 DataSet ?
  • ok..所以您从数据库中获取的所有数据都存在于数据集中,您希望创建一个 Book 对象列表,其中填充了相应属性中所有列的值。正确的?你可以稍微改一下你的问题。我们无法获取您在帖子标题中提到的JSON格式的角色。
  • @RBT 是正确的

标签: c# list dataset


【解决方案1】:

您可以开始思考使用以下代码获取图书列表的方向:

DataSet ds = null;

//populate the dataset ds from SQL Server using ADO .Net

/*
Your database would have two tables:
Books : containing Id, BookName columns -> This will get populated in Tables[0] of dataset
BookImages: containing BookId, BookImageUrl columns -> This will get populated in Tables[1] of dataset

Here BookId column in BookImages table is foreign key referring to Id column in Books table 
             */

//tables[0] contains main attributes of a book e.g. Name, Id etc.
DataTable dataTab = ds.Tables[0];

var bookList = dataTab.AsEnumerable().Select(x => new Book                      {
               ID = int.Parse(x["Id"].ToString()),
               BookName = x["BookName"].ToString(),
             });

/*tables[1] contains detailed attributes of a book e.g. book image Urls
         * */
DataTable imageTab = ds.Tables[1];

foreach (var book in bookList)
{
    book.BookImageUrl = imageTab.AsEnumerable()
                        .Where(x => Convert.ToInt32(x["BookId"]) == book.ID)
                        .Select(x => x["BookImageUrl"].ToString()).ToList();
}

【讨论】:

  • 感谢您的帮助。顺便说一句,“公共列表 BookImageUrl”
  • 我已经更新了填充BookImageUrl 的答案,假设是一个基本的数据库模式。希望这对您有所帮助。
  • 感谢您的详细解释:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 2017-02-27
相关资源
最近更新 更多