2009-10-28 26 views
2

我有一個我想查詢的數據表。 查詢是非常大和複雜的,它在我在SQl服務器編輯器中運行它時起作用 - 所以我有查詢文本。查詢大型查詢數據表字符串

我需要使用此查詢字符串查詢數據表。 要將查詢轉換爲linq將需要幾年時間,並且DataTable的Select()方法也不會處理它。

如何操作數據表上的文本查詢?

回答

0

可以使用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); 
} 
2

你可能想繼續並使其成爲一個存儲過程,特別是如果它需要一組相對固定的參數。然後你可以將你的存儲過程添加到你的Linq2(entitites,sql,whatever)命令中,並映射它以返回適當的對象。