art*_*urn 6 c# dataset typed-dataset visual-studio-2008
目前,我正在设计和实现一个软件,该软件必须在两个具有master-detail arquitecture的表上实现CRUD操作.Header有大约五十万行,细节大约有几百万行.
在数据集中填写所有这些数据是疯狂的,数据也可以改变,我对数据库的本地副本不感兴趣.我很感兴趣,该软件工作流畅.虽然数据集可能不是最佳解决方案,但我应该使用它来与其他软件部分保持一致.
首先我想使用TypedDataset和一些像GetNext(),GetFirst(),GetByCod()的方法,但我不确定是否是最好的解决方案......我正在做一点测试,不能很好地工作流利.
我很想知道其他开发人员如何做到这一点,最佳实践以及使用大数据进行操作的"最佳选择".
我正在使用Visual Studio 2008和Sql Server 2005.
补充: 当你谈到使用SqlDataReader时,你指的是这样的东西?
using (SqlConnection con = new SqlConnection(CON)) {
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE");
cmd.Connection = con;
SqlDataReader rd = cmd.ExecuteReader();
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = rd;
bindingNavigator1.BindingSource = bindingSource;
txtFCOD.DataBindings.Add("Text", bindingSource, "FIELD");
}
Run Code Online (Sandbox Code Playgroud)
我认为没有办法管理这么大的数据集。
您需要 DataReader,而不是 DataSet。
具有大量数据的数据库的本地副本是实现此类目标的有效方法(应用程序的快速响应),但您会遇到同步(复制)、并发等问题。
最佳实践是仅从服务器获取用户真正需要的数据。您必须使用服务器端处理通过存储过程等
我仍然不知道你想要操作哪些数据以及你的应用程序的目的是什么,但是客户端大量数据还有另一个缺点 - 你的应用程序将需要大量的内存和快速的 CPU。也许您的计算机速度很快并且能够处理此问题,但请考虑一下当有人在具有 1GHz Atom CPU 的平板电脑上安装您的应用程序时会发生什么。那将是一场灾难。