[英]DataAdapter.Fill too slow
我知道DataAdapters存在性能问题,但是有没有解决的方法可能会更快? 目前,DataAdapter.Fill方法对3000条记录花费5-6秒,这对于我的应用程序来说太慢了。 如果我删除Fill
行并仅执行SQL(使用SQLCE),则需要20毫秒,因此我猜测查询不是问题。 我试过在数据表上添加BeginLoadData
,但对性能没有影响。
using (SqlCeConnection con = new SqlCeConnection(conString))
{
con.Open();
using (SqlCeDataAdapter dAdapter= new SqlCeDataAdapter())
{
using (SqlCeCommand com = new SqlCeCommand(query, con))
{
com.Parameters.Add("uname", textBox1.Text);
dAdapter.SelectCommand = com;
dAdapter.SelectCommand.Connection = con;
DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
dataGridView1.DataSource = dTable;
}
}
}
有没有更好的方法来填充DataGridView或加快Fill
方法?
您可以改为将DataGridView绑定到DataReader
,但这可能不会好得多,因为将3000行加载到DataGridView中并不是很方便。
核心问题是一次为用户加载3000。 无论如何加载300条记录,数据量都是问题。 在sql查询中实现分页,以允许用户查看记录的子集。 然后,用户可以在需要时导航到更多记录。
使用BatchUpdate / BatchInsert。 确保指定UpdateBatchSize = 3000(具有的记录数)
这是有关如何执行此操作的示例: BatchInsert
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.