解决 即使在福彩12选5走势图集和SQL Server Management Studio中更改福彩12选5走势图类型后也会出错

已加入
2020年5月15日
留言内容
34
编程经验
Beginner
我在C#Visual Studio中有一个福彩12选5走势图库,然后有一个福彩12选5走势图集。在福彩12选5走势图库中,有一个表,该表的列名为CardType。这是由我之前的某个人创建的。并且此列中的值始终为40。因此他创建了double类型的值。

有人告诉我,现在必须将值更改为SAR40,而不仅仅是40。所以现在是字符串。因此,当我将值更改为SAR40时,尝试将SAR40添加到double类型的列时显然会出现错误。因此,首先我去了SQL Server Management Studio,然后将类型更改为nvarchar。然后,我回到Visual Studio,并将CardType的福彩12选5走势图类型更改为System.String。

然后,当我运行程序时,仍然出现错误

参数值不能从字符串转换为双精度。
FormatException:输入的字符串格式错误。
该程序的工作方式是有一堆小段来填充福彩12选5走势图,并且每个福彩12选5走势图都进入福彩12选5走势图库。福彩12选5走势图,例如卡类型,硬件修订等。因此,我们创建一个称为工作行的福彩12选5走势图行,然后将其添加到工作行中。

workRow ["CardType"] = type.Text; // CardType是字符串,我将鼠标悬停在它上面进行了仔细检查,它显示为字符串。
workRow ["Hardwarerevision"] = hw.Text;

然后,将福彩12选5走势图行添加到福彩12选5走势图集中。
//添加新的福彩12选5走势图行
ds.UNIO_CPU.Rows.Add(workRow);

最后,我们使用名为DataGridAdapter_CPU的表适配器使用福彩12选5走势图集更新福彩12选5走势图库。
//将福彩12选5走势图写入福彩12选5走势图库
DataGridAdapter_CPU.Update(workRow);

那么,为什么我仍然会收到错误消息?
我尝试仅用40运行该程序,但该程序未显示任何错误。它工作正常。那怎么可能。因为我在SQL Server Management Studio和Visual Studio的福彩12选5走势图集中都将其更改为字符串类型。因此,这里应该显示错误。但是它没有显示错误。而我尝试输入SAR40,则显示无法将字符串转换为双精度的错误。

该错误发生在DataGridAdapter_CPU.Update(workRow)行中。因为我注释掉了这条线,其余的都跑了。没有错误,程序正常运行,但是由于注释了这一行,因此福彩12选5走势图库未接收到新行。因此,当tableadapter尝试将福彩12选5走势图行添加到sql server福彩12选5走势图库中时,就会发生错误。但是正如我所说,我已经将福彩12选5走势图集中的CardType更改为System.string,然后还将SSMS中的colum CardType更改为string。因此,tableadapter中有一些我必须更改的东西。我不是这方面的专家,我只知道基本的C#编程。请帮我。谢谢你。
 
Solution
大概您在一个地方更改了某项内容,但并未影响其他地方的更改。您应该做的是在福彩12选5走势图库中进行更改,然后在“福彩12选5走势图源”窗口中重新生成DataSet以在所有必需的位置进行更改。我认为DataColumn的福彩12选5走势图类型应该更改,但是如果没有更改,则可以删除DataTable并从福彩12选5走势图库中重新生成整个福彩12选5走势图。

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,561
地点
悉尼,澳大利亚
编程经验
10+
大概您在一个地方更改了某项内容,但并未影响其他地方的更改。您应该做的是在福彩12选5走势图库中进行更改,然后在“福彩12选5走势图源”窗口中重新生成DataSet以在所有必需的位置进行更改。我认为DataColumn的福彩12选5走势图类型应该更改,但是如果没有更改,则可以删除DataTable并从福彩12选5走势图库中重新生成整个福彩12选5走势图。
 
解决方案
已加入
2020年5月15日
留言内容
34
编程经验
Beginner
大概您在一个地方更改了某项内容,但并未影响其他地方的更改。您应该做的是在福彩12选5走势图库中进行更改,然后在“福彩12选5走势图源”窗口中重新生成DataSet以在所有必需的位置进行更改。我认为DataColumn的福彩12选5走势图类型应该更改,但是如果没有更改,则可以删除DataTable并从福彩12选5走势图库中重新生成整个福彩12选5走势图。
谢谢,我确实做到了。我没有删除整个福彩12选5走势图表,只是删除了CardType列,然后创建了一个新的StringType的CardType,然后将Dataset配置为包括新的CardType列,并且它起作用了。因此,创建新列有效,但更改旧列无效。但是之前,当我将类型从double更改为string时,我没有对tableadapter进行任何配置,只是对其进行了更改,并且我认为表适配器可以自动工作。所以我想我会再次做旧的事情,即从double更改为string,然后再配置tableadapter,看看它如何工作以理解问题。无论如何,它现在就可以了,这就是我所需要的。谢谢你。
 
已加入
2020年5月15日
留言内容
34
编程经验
Beginner
大概您在一个地方更改了某项内容,但并未影响其他地方的更改。您应该做的是在福彩12选5走势图库中进行更改,然后在“福彩12选5走势图源”窗口中重新生成DataSet以在所有必需的位置进行更改。我认为DataColumn的福彩12选5走势图类型应该更改,但是如果没有更改,则可以删除DataTable并从福彩12选5走势图库中重新生成整个福彩12选5走势图。
是的,我转到了程序的旧副本,该副本的旧CardType已从double更改为string,然后我再次重新配置了表适配器,并且该模板可以正常工作。因此,仅在VB和SSMS中更改表是不够的。我还需要配置表适配器中的更改。那是我的错
 
最佳 底部