“一旦列有数据就无法更改其数据类型” Visual Studio 2005 数据集设计器中的错误
我在 VisualStudio 2005 中有一个数据集。我需要将其中一个数据表中的列的数据类型从 System.Int32
更改为 System.Decimal
。 当我尝试更改数据集设计器中的数据类型时,我收到以下错误:
属性值无效。 无法更改列的数据类型一次 它有数据。
根据我的理解,这应该更改数据集架构中的数据类型。 我不明白如何有任何数据会导致此错误。
有人有什么想法吗?
I've got a DataSet in VisualStudio 2005. I need to change the datatype of a column in one of the datatables from System.Int32
to System.Decimal
. When I try to change the datatype in the DataSet Designer
I receive the following error:
Property value is not valid. Cannot change DataType of a column once
it has data.
From my understanding, this should be changing the datatype in the schema for the DataSet. I don't see how there can be any data to cause this error.
Does any one have any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是一个老问题,但在 VS 2019 中仍然可能发生
解决方案:
现在应该可以毫无问题地更改类型。
Its an old Question but it still can happen at VS 2019
Solution:
Now it should be possible to change the type without any problem.
我找到了解决办法。 如果我删除数据列并使用不同的数据类型将其添加回来,那么它就会起作用。
I have found a work around. If I delete the data column and add it back with the different data type, then it will work.
打开方式...
XML(文本)编辑器
type="xs:int"
更改为type="xs:decimal"
运行自定义工具
Open With...
XML (Text) Editor
type="xs:int"
totype="xs:decimal"
Run Custom Tool
对于那些通过 Google 发现这一点的人来说,您的情况略有不同,您的表已获取数据并且添加了一个新列(像我一样),如果您创建该列并在单独的语句中设置数据类型,您也会得到相同的异常。 但是,如果您在同一条语句中执行此操作,则效果很好。
因此,不要这样做:
这样做:
For those finding this via Google and you have a slightly different case where your table has got data and you add a new column (like me), if you create the column and set the datatype in separate statements you also get this same exception. However, if you do it in the same statement, it works fine.
So, instead of this:
Do this:
我收到相同的错误,但仅限于
DefaultValue
设置为任何值的列(默认
除外)。 所以我解决这个问题的方法是:I get the same error but only for columns with its
DefaultValue
set to any value (except the default<DBNull>
). So the way I got around this issue was:<DBNull>
由于填充的数据表不接受架构中的更改,因此可以应用以下解决方法:
创建新数据表
使用数据表的克隆方法
使用相同的方法创建数据表
结构并对其进行更改
column
最后使用datatable的ImportRow
方法用数据填充它。
华泰
Since filled Datatables do not entertain a change in the schema a workaround can be applied as follows:
Make a new datatable
Use datatable's Clone method to
create the datatable with the same
structure and make changes to that
column
In the end use datatable's ImportRow
method to populate it with data.
HTH