我有一个我想查询的数据表。 查询是非常大和复杂的,它在我在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)命令中,并映射它以返回适当的对象。