【发布时间】:2014-08-09 18:03:18
【问题描述】:
我前段时间实现了一个 DataGridView。它工作得很好。现在我正在做一些重负载测试,但它失败了。它到处抛出异常,至少在它尝试加载数据时。
问题:DataContext 刷新
有一种方法可以刷新DataGridView 中的数据。
一个异常告诉我已经有一个DataReader 打开,我必须先关闭它。
第二个异常告诉我“在调用 submitchanges 期间无法执行该操作”。
问题是我自己没有使用DataReaders,我使用的是您在下面看到的方法:
this.bindingSource.EndEdit();
this.bindingSource.DataSource = null;
// DataControl is my controler where the table is stored. It is a singleton.
DataControl.Instance.m_DBTable.Context.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, DataControl.Instance.m_DBTable);
this.bindingSource.ResetBindings(false);
this.bindingSource.DataSource = DataControl.Instance.m_DBTable;
我希望有人可以帮助我解决这个问题。如果需要,请随时询问更多详细信息。
谢谢
抛出更多异常(不仅在该方法上,而且在同一表单上。)
- 内部连接致命错误
- Sql DateTime-Overflow(必须在 1/1/1753 和 21/31/9999 之间)(我真的总是初始化我所有的日期时间变量!)
- 当没有可用数据时,读取操作无效。
- 没有引用异常。
【问题讨论】:
-
到处抛出异常——具体在哪里?至少一个例子。据我了解,您使用的是 LinqToSql,不是吗?您如何测试重负载?
-
基本上每次DataGridView加载数据时。初始化后一切正常,表格得到正确更新。为了测试重负载,我将数据库连接到系统更改值。数据库上有大约 15 个新更新,DataGridView 应该显示表格。
-
我对 LINQ to SQL 的经验非常有限,所以请告诉我 m_DbTable 的类型是什么?尝试阅读msdn.microsoft.com/en-us/library/vstudio/…。它可能包含一些有用的见解。
-
我实际上没有写过一个 LINQToSQL 的代码行。我只使用 System.Data.Linq.Table - 命名空间进行了映射。然后 DataBinding 应该为我完成了这项工作。显然这不太好用。
-
而且我仍然不明白如何使用测试重负载(en.wikipedia.org/wiki/Stress_testing)。您是启动程序的多个实例还是创建数据层的多个实例?是手动完成还是自动完成。在一台机器上还是几台机器上?