Запросить таблицу данных по большой строке запроса - PullRequest
2 голосов
/ 28 октября 2009

У меня есть данные, которые я хочу запросить. запрос очень большой и сложный, и он работает, когда я запускаю его в SQl Server Editor - поэтому у меня есть текст запроса.

Мне нужно запросить данные с помощью этой строки запроса. Чтобы перевести запрос в linq, потребуются годы, а метод Select () класса DataTable не справится с этим.

Как я могу обработать текстовый запрос к таблице данных?

Ответы [ 2 ]

2 голосов
/ 28 октября 2009

Возможно, вы захотите сделать это хранимой процедурой, особенно если она принимает относительно фиксированный набор параметров. Затем вы можете просто добавить свою хранимую процедуру в команду Linq2 (полномочий, sql и т. Д.) И отобразить ее для возврата соответствующего объекта.

0 голосов
/ 28 октября 2009

Вы можете использовать SqlCommand, например:

using(var connection = new SqlConnection("connection string"))
using(var command = new SqlCommand(@"
your very long query
    ", connection)
using(var reader = command.ExecuteReader()) {
    while(reader.Read()) {
        //use reader[colIndex] to get a field from the current row
    }
}

Вы можете загрузить его в таблицу данных, используя SqlDataAdapter, например:

var table = new DataTable();

using(var connection = new SqlConnection("connection string"))
using(var command = new SqlCommand(@"
your very long query
    ", connection)
using(var adapter = new SqlDataAdapter(command)) {
    adapter.Fill(table);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...