2016-10-20 2 views
0

В моей базе данных есть таблица книг, таблица категорий и таблица авторов. В книге есть категория и многие авторы. Между книгой и автором есть промежуточный стол. Я хочу сделать, чтобы привести список книг в datagridview.Как я могу вывести из базы данных множество значений, разделенных запятыми, в ячейку datagridview в C#?

В случае категорий: следует ли задавать в классе книги свойство «id категории» (тип int) или свойство: «категория» (тип категории) или просто «category_name» (тип строки)?

И в случае авторов: Должен ли я установить в классе книги свойство со списком «авторов» (тип автора) или список «авторов идентификаторов» (тип int) или список «авторов» name "(String type)

Как мне сделать запрос на доставку книг из базы данных? В случае авторов: Должен ли я сделать запрос, чтобы привести все книги, а затем запрос для каждой книги, чтобы заполнить авторов каждого?

Я устанавливаю список книг в datagridview.datasource.

Как показать список книг в datagridview, если класс книги включил свойство категории и свойство со списком авторов? (В ячейке должны быть все авторы книг, разделенные запятыми)

ответ

-1

Слишком поздно начинать использовать Entity Framework?

Entity Framework сделает все для вас. Вы не будете заботиться о низком уровне SQL. Конечно, вам все равно нужно понять структуру и то, как все связано ... но это делает вашу жизнь намного проще.

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

0

Основываясь на том, что я сделал в одном из моего приложения, я предлагаю как под:

  1. Вместо размещения все в одном DataGridView, использовать три различных DataGridViews:
    • один для показа списка книг
    • один для отображения списка категорий, присвоенных книге; будучи ребенком книг
    • один для отображения списка авторов, которые написали книгу; будучи ребенком книг
  2. Создайте DataSet, содержащий три таблицы: Book, BookCategory и BookAuthor. Создайте два родительских/дочерних отношения: одну книгу и книжную категорию, другую книгу и книгу.
  3. Создайте три BindingSources по одному для каждой таблицы: Book, BookCategory и BookAuthors. Свяжите каждый DataGridView с соответствующими объектами BindingSource.
Смежные вопросы