我有一個我想查詢的數據表。 查詢是非常大和複雜的,它在我在SQl服務器編輯器中運行它時起作用 - 所以我有查詢文本。查詢大型查詢數據表字符串
我需要使用此查詢字符串查詢數據表。 要將查詢轉換爲linq將需要幾年時間,並且DataTable的Select()方法也不會處理它。
如何操作數據表上的文本查詢?
我有一個我想查詢的數據表。 查詢是非常大和複雜的,它在我在SQl服務器編輯器中運行它時起作用 - 所以我有查詢文本。查詢大型查詢數據表字符串
我需要使用此查詢字符串查詢數據表。 要將查詢轉換爲linq將需要幾年時間,並且DataTable的Select()方法也不會處理它。
如何操作數據表上的文本查詢?
可以使用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);
}
你可能想繼續並使其成爲一個存儲過程,特別是如果它需要一組相對固定的參數。然後你可以將你的存儲過程添加到你的Linq2(entitites,sql,whatever)命令中,並映射它以返回適當的對象。