我有一个想要查询的数据表。 查询非常庞大和复杂,当我在SQl服务器编辑器中运行它时它可以工作 - 所以我有查询文本。
我需要使用此查询字符串查询数据表。 要将查询转换为linq需要数年时间,而且DataTable的Select()方法也无法处理它。
如何在dataTable上操作文本查询?
答案 0 :(得分:2)
您可能希望继续将其作为存储过程,特别是如果它采用相对固定的参数集。然后,您可以将存储过程添加到Linq2(权利,sql,无论如何)命令中,并将其映射以返回相应的对象。
答案 1 :(得分: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
将其加载到DataTable中,如下所示:
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);
}