通过大型查询字符串查询dataTable

时间:2009-10-28 14:32:44

标签: sql string text datatable

我有一个想要查询的数据表。 查询非常庞大和复杂,当我在SQl服务器编辑器中运行它时它可以工作 - 所以我有查询文本。

我需要使用此查询字符串查询数据表。 要将查询转换为linq需要数年时间,而且DataTable的Select()方法也无法处理它。

如何在dataTable上操作文本查询?

2 个答案:

答案 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);
}