在填充DataTable时,SqlDataReader如何确定是否将列设置为ReadOnly?

时间:2016-07-06 20:07:46

标签: .net sql-server datatable sqldatareader

我正在调用dataTable.Load(sqlDataReader),其中2列自动在dataTable中设置为ReadOnly。其余列可编辑。我知道我可以编辑此属性,但我想知道它如何确定要设置为ReadOnly的内容。

其中一列是表的主键,另一列是BitBit列在SQL Server中有一个默认约束,但这就是全部。我用来调用它的查询是将列转换为INT。我想知道是否有一种方法可以编辑我的SQL查询以使列只读。

1 个答案:

答案 0 :(得分:0)

您可以通过指定列详细信息来回答您自己的问题。

我的假设是DataTable是以能够更新,插入,删除行/列等的方式创建的。因此,由DataTable以外的资源处理或计算的任何内容都可能是只读的

因此,主键列可能是IDENTITY列,这意味着数据库会分配键,这意味着您不想添加自己的值!因此被标记为只读。

下一个可能不是因为列上有默认值。因为从技术上讲,您不包括位列,但是您要包含基于位列的计算列。因此,您所包含的列实际上并不存在于基础表中,因此.net将无法更改列中的数据.....