Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在填充数据表时,SqlDataReader如何确定是否将列设置为只读?_.net_Sql Server_Datatable_Sqldatareader - Fatal编程技术网

.net 在填充数据表时,SqlDataReader如何确定是否将列设置为只读?

.net 在填充数据表时,SqlDataReader如何确定是否将列设置为只读?,.net,sql-server,datatable,sqldatareader,.net,Sql Server,Datatable,Sqldatareader,我正在调用dataTable.Load(sqlDataReader),数据表中的两列被自动设置为ReadOnly。其余的列是可编辑的。我知道我可以编辑此属性,但我想知道它如何确定设置为ReadOnly 其中一列是表的主键,另一列是位。在SQL Server中,位列有一个默认约束,但仅此而已。我用来调用它的查询是将列转换为INT。我想知道是否有一种方法可以编辑我的SQL查询,使列成为只读 您可以通过指定列的详细信息来回答自己的问题 我的假设是,DataTable是以能够更新、插入、删除行/列等的方

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


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

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

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

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


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

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

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

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


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

是的,我实际上同意将PK设置为只读,但我不希望转换后的值自动设置为只读。我把我的varchars转换成varchars,看着它们变成只读的,所以我想就是这样。你不会碰巧知道一种预防的方法吧?我想问题是你为什么要转化?那么,由于不是只读的,您将如何将转换映射回更新/插入基础表?第二个问题是为什么它们被标记为只读,您必须实现自定义业务逻辑和更新/插入命令。我之所以转换它,是因为位使它成为DataGrid中的复选框,而这不是我想要的。它最终无法在往返过程中使用我的更新/插入。我最终选择了另一种方法来给我更多的控制权。是的,我实际上同意将PK设置为只读,但我不希望转换后的值自动变成只读。我把我的varchars转换成varchars,看着它们变成只读的,所以我想就是这样。你不会碰巧知道一种预防的方法吧?我想问题是你为什么要转化?那么,由于不是只读的,您将如何将转换映射回更新/插入基础表?第二个问题是为什么它们被标记为只读,您必须实现自定义业务逻辑和更新/插入命令。我之所以转换它,是因为位使它成为DataGrid中的复选框,而这不是我想要的。它最终无法在往返过程中使用我的更新/插入。我最终选择了另一条路线,用我的方法给我更多的控制权。