Visual Studio 2005 数据集设计器中出现“一旦列有数据就无法更改其数据类型”错误
-
09-06-2019 - |
题
我在 VisualStudio 2005 中有一个数据集。我需要更改其中一个数据表中列的数据类型 System.Int32
到 System.Decimal
. 。当我尝试更改中的数据类型时 DataSet Designer
我收到以下错误:
属性值无效。一旦具有数据,就无法更改列的数据类型。
根据我的理解,这应该更改数据集架构中的数据类型。我不明白如何有任何数据会导致此错误。
有人有什么想法吗?
解决方案
我得到同样的错误,但仅限于具有其 DefaultValue
设置为任意值(默认值除外) <DBNull>
)。所以我解决这个问题的方法是:
- 列默认值:输入
<DBNull>
- 保存并重新打开数据集
其他提示
由于填充的数据表不接受架构中的更改,因此可以应用以下解决方法:
新建一个数据表
使用DataTable的克隆方法来创建具有相同结构的DataTable,并更改该列
最后,使用DataTable的Ingortrow方法将其填充数据。
华泰
我找到了解决办法。如果我删除数据列并使用不同的数据类型将其添加回来,那么它就会起作用。
对于那些通过 Google 发现这一点的人来说,您的情况略有不同,您的表已获取数据并且您添加了一个新列(像我一样),如果您创建该列并在单独的语句中设置数据类型,您也会得到相同的异常。但是,如果您在同一条语句中执行此操作,则效果很好。
所以,而不是这个:
var column = myTable.Columns.Add("Column1");
column.DataType = typeof(int); //nope, exception!
做这个:
var column = myTable.Columns.Add("Column1", typeof(int));
不隶属于 StackOverflow