C# 从查询创建数据表的最快方法?

C# 从查询创建数据表的最快方法?,c#,.net,sql,datatable,C#,.net,Sql,Datatable,从该SQL查询生成DataTable的行数最少的代码是什么 SELECT * FROM [Table1] WHERE ([Date] BETWEEN @Date1 AND @Date2) AND ([Field1] IS NULL OR [Field2] IS NULL) 用于填充数据表 DataTable dt = new DataTable(); using (SqlConnection yourConnection = new SqlConnection("connec

从该SQL查询生成
DataTable
的行数最少的代码是什么

SELECT * 
FROM [Table1] 
WHERE ([Date] BETWEEN @Date1 AND @Date2) AND 
      ([Field1] IS NULL OR [Field2] IS NULL)
用于填充数据表

DataTable dt = new DataTable();
using (SqlConnection yourConnection = new SqlConnection("connectionstring"))
{
    using (SqlCommand cmd = new SqlCommand("....your sql statement", yourConnection))
    {
        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
        {
            da.Fill(dt);
        }
    }
}

SqlConnection
SqlCommand
SqlDataAdapter
中使用block,因为它们实现了
IDisposable
接口。还可以使用query

sqldataadapter和FillSchema

它将动态创建您的表

应用于数据集

应用于数据表

试试这个

SqlCommand command = new SqlCommand(query, conn);
DataTable dt = new DataTable();
using(SqlDataReader reader = command.ExecuteReader())
{
     dt.Load(reader);
}

我想说这就是答案:)-1,如果必须填充数据集,则DataReader不适合。在阅读数据时需要利用数据的情况下,它很有用。你已经得到了很好的答案。请接受一个..您不想在SqlCommand和SqlDataAdapter中也包含“using”语句吗,因为它们也实现IDisposable?@Nightspove,这是正确的。我本应该使用使用积木的。