Получать данные из DataTable в c# - PullRequest
       104

Получать данные из DataTable в c#

0 голосов
/ 02 августа 2020
SqlCommand detailsCommand = new SqlCommand("SELECT bd.bookName, bd.authorName, bd.publishDate bc.description, bd.keyWords FROM bookCart as bc, bookDetails as bd WHERE bc.bookCode = bd.code");

DataTable detailsTable = book.showData(detailsCommand);

String BookName = detailsTable.Rows[0]["bookName"].ToString();
String AuthorName = detailsTable.Rows[1]["authorName"].ToString();
String PublishDate = detailsTable.Rows[2]["publishDate"].ToString();
String Describe = detailsTable.Rows[3]["describtion"].ToString();
String KeyWords = detailsTable.Rows[4]["keyWords"].ToString();

Это дает мне IndexOutOfRangeException в последних двух строках.

Думаю, это потому, что описание находится в другой таблице, но я не смог его решить, вы можете мне помочь с этим, пожалуйста ?

1 Ответ

0 голосов
/ 02 августа 2020

Попробуйте следующее:

String BookName = detailsTable.Rows[0]["bookName"].ToString();
String AuthorName = detailsTable.Rows[0]["authorName"].ToString();
String PublishDate = detailsTable.Rows[0]["publishDate"].ToString();
String Describe = detailsTable.Rows[0]["description"].ToString();
String KeyWords = detailsTable.Rows[0]["keyWords"].ToString();

DataTable.Rows содержит набор строк, принадлежащих этой таблице, поэтому detailsTable.Rows[0] - первая строка, detailsTable.Rows[1] - вторая и так далее (в вашем случае кажется, что их 3, поэтому вы получите IndexOutOfRangeException на 4-м)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...