从查询创建DataTable的最快方法?

时间:2012-10-18 05:45:52

标签: c# .net sql datatable

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

SELECT * 
FROM [Table1] 
WHERE ([Date] BETWEEN @Date1 AND @Date2) AND 
      ([Field1] IS NULL OR [Field2] IS NULL)

3 个答案:

答案 0 :(得分:15)

使用SqlDataAdapter填充DataTable。

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

SqlConnectionSqlCommandSqlDataAdapter使用using阻止,因为它们实现了IDisposable接口。还可以使用Parameterized查询

答案 1 :(得分:2)

试试这个

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

答案 2 :(得分:1)

SqlDataAdaptor和FillSchema

它会动态创建你的表

应用于数据集

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.aspx

应用于DataTable

http://msdn.microsoft.com/en-us/library/152bda9x.aspx