SqlDataAdapter.Fill()与DataTable.Load()

时间:2019-03-07 10:48:12

标签: c# sql sqldatareader sqldataadapter

我来自此处的this问题,但情况不同。我需要将结果放在DataTable中,并且有两种可能的方法:

public static DataTable SelectDataTable(string query, string ConnectionString)
{       
    using (SqlConnection myConnection = new SqlConnection(ConnectionString))
    {
        using (SqlDataAdapter myDataAdapter = new SqlDataAdapter(query, myConnection))
        {
            DataTable dt = new DataTable();
            myDataAdapter.Fill(dt);
            return dt;
        }
    }
}

public static DataTable SelectDataTable(string query, string ConnectionString)
{
    using (SqlConnection myConnection = new SqlConnection(ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand(query, myConnection))
        {
            myConnection.Open();
            DataTable dt = new DataTable();
            dt.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
            return dt;
        }
    }
}

所以我的问题是:

SqlDataAdapter + Fill() SqlDataReader + DataTable + Load()

其中哪种方法更受欢迎?

  

乔尔的答案很详细,是什么使这个问题不再重复

实际上,我没有使用SqlDataReader的所有那些优点,而是用它来填充DataTable,这使我期望答案是:一样吗?不幸的是,很难猜测引擎盖下发生了什么。

0 个答案:

没有答案