如何从数据库中将许多以“逗号”分隔的值转换为c#中datagridview的单元格?

时间:2016-10-20 03:01:21

标签: c# winforms oop datagridview many-to-many

在我的数据库中,有一个Book表,一个Category表和一个Author表。一本书有一个类别和许多作者。书和作者之间有一个中间表。我想要做的是将一个书籍列表带到datagridview。

如果是类别:我应该在book类中设置一个属性:“category id”(int type)还是属性:“category”(类别类型)或者只是“category_name”(String类型)?< / p>

如果是作者:我应该在Book类中设置一个带有“authors”列表(作者类型)的属性,还是一个“id authors”列表(int类型)或“作者姓名”列表“(字符串类型)

如何进行查询以从数据库中获取图书?在作者的情况下:我是否应该进行查询以获取所有书籍,然后查询每本书以填写每本书的作者?

我在datagridview.datasource中设置了书籍列表。

如果图书类包含类别属性和包含作者列表的属性,如何在datagridview中显示图书列表? (在一个单元格中,所有书籍作者应以逗号分隔)

2 个答案:

答案 0 :(得分:0)

根据我在我的一个申请中所做的事情,我建议如下:

  1. 不是将所有内容放在单个DataGridView中,而是使用三个不同的DataGridView:
    • 一个用于显示图书清单
    • 用于显示分配给图书的类别列表;是书的孩子
    • 一个用于显示撰写书籍的作者名单;是书的孩子
  2. 创建一个包含三个表的DataSet:Book,BookCategory和BookAuthor。创建两个父/子关系:一个Book和BookCategory,另一个Book和BookAuthor。
  3. 为每个表创建一个BindingSource:Book,BookCategory和BookAuthors。将每个DataGridView绑定到各自的BindingSource对象。

答案 1 :(得分:-1)

开始使用Entity Framework是否为时已晚?

实体框架将为您完成一切。你不会关心SQL低级别。当然,你仍然需要了解结构以及事物的相关性......但它会让你的生活更轻松。

https://msdn.microsoft.com/en-us/data/jj193542(v=vs.113).aspx