我来自此处的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,这使我期望答案是:一样吗?不幸的是,很难猜测引擎盖下发生了什么。