如何使一个数据表只读



我正在编写一个返回DataTable对象的函数。我使用DataTable.Load( DataReader)来填充DataTable。然而,据我所知,虽然底层的DataReader是只读的,只向前;一旦它被加载到DataTable;其他程序员仍然可以通过DataTable.Rows(x).Column(y).ReadOnly = False更新数据,然后设置值。

是否有办法确保我的函数返回的数据表是只读的?在较早的ADODB时代,我使用ADODB。LockTypeEnum用于标识返回的记录集为只读。

通过只读,我的意思是调用者到我的函数(谁得到返回的数据表)不能改变行数据和/或更新它在所有(即只读)。

是否有办法确保我的函数返回的数据表是只读的吗?

不,通常没有这样的方法或方法使其只读。与DataView不同,AllowEdit具有此目的的属性(因此您可以返回DataView代替)。

我看到避免表上变化的唯一方法是:尝试处理RowChanged事件,然后调用RejectChanges

防止调用者破坏内部DataTable(或DataSet)的另一种方法是返回一个副本。DataSet和DataTable类都有一个Copy()方法,可以复制原始的结构和数据。

显然,对于包含相对较少数据量的数据表,这将工作得更好。

相关内容

  • 没有找到相关文章

最新更新