public DataTable FetchData(string sQuery)
{
DataTable dtable = new DataTable();
using (SqlConnection conn = new SqlConnection(conString))
{
conn.Open();
using (SqlCommand sqlCmd = new SqlCommand(sQuery, conn))
{
SqlDataReader sdRead = sqlCmd.ExecuteReader();
dtable.Load(sdRead);
}
}
return dtable;
}
Datatable dt = FetchData(string sQuery);
foreach(DataRow row in table.Rows)
ClassA obj = new ClassA(row);
// Some manipulations
//.....
Class A
{
int id;
int name;
A(DataRow dr)
{
id = dr["ID"];
name = dr["Name"];
}
}
我需要从数据库中检索近 15,00,000 行。
我需要针对两种情况的建议。
我将上述方法调用了 1-5 次,因此显然它创建了 1-5 个连接。如果它变成性能的 10-20 倍重量?(或创建一个全局连接并打开 1 个连接并处理所有连接,然后在最后关闭。)
数据表呢?任何替代方案。我认为对于这么多行,我需要断开连接的架构。我需要用检索到的数据填充我自己的类对象(或迭代数据读取器并填充
List<objects>
FetchData() 内部)。
有什么建议么?