Всем привет! Цель - выполнить следующий запрос и сохранить полученные данные в DataTable:
| Код | Select Book.id_book, Book.Название, Book.Издательство, Book.Год, Book.УДК, Book.ББК, Book.ISBN, Book.Количество_всего, RelationBookReader.id_relation From Book, RelationBookReader where RelationBookReader.id_reader=@k and Book.id_book=RelationBookReader.id_book;
|
где @k это число которое надо подставить. Как выполнить такой запрос в DataSet не обращаясь лишний раз к БД я не знаю (может кто подскажет?)
Я написал хранимую процедуру следующего вида:
| Код | CREATE PROC get_book_debtor @k int AS Select Book.id_book, Book.Название, Book.Издательство, Book.Год, Book.УДК, Book.ББК, Book.ISBN, Book.Количество_всего, RelationBookReader.id_relation From Book, RelationBookReader where RelationBookReader.id_reader=@k and Book.id_book=RelationBookReader.id_book;
|
В проге выполняю её:
| Код | OleDbCommand command = new OleDbCommand("get_book_debtor", Connection); command.CommandType = CommandType.StoredProcedure; OleDbParameter workParam = null; workParam = command.Parameters.Add(new OleDbParameter("@k", OleDbType.Integer)); workParam.Direction = ParameterDirection.Input; workParam.Value = id_reader;
Connection.Open(); OleDbDataReader reader = command.ExecuteReader(); Connection.Close();
|
но как получить данные процедуры в виде набора записей DataRow (одной DataTable)??? |