gpt4 book ai didi

c# - 尝试插入两个字母的字符时,指定的转换无效

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:47 25 4
gpt4 key购买 nike

所以我的代码中有这样的东西

string sqlQuery = "INSERT PERSON (FIRST_NAME, SURNAME, FIRST_CODE, SECOND_CODE) VALUES (@FIRST_NAME, @SURNAME, @FIRST_CODE, @SECOND_CODE)";

SqlCommand command = new SqlCommand(sqlQuery);
command.Parameters.AddWithValue("@FIRST_NAME", "Testo");
command.Parameters.AddWithValue("@SURNAME", "Tester");
command.Parameters.AddWithValue("@FIRST_CODE", 'A');
command.Parameters.AddWithValue("@SECOND_CODE", "CA");

在数据库中,表 PERSON 看起来像这样

[FIRST_NAME] [varchar](20) NULL,
[SURNAME] [varchar](20) NULL,
[FIRST_CODE] [char](1) NULL,
[SECOND_CODE] [char](2) NULL,

问题是,当我执行 SqlCommand 时,出现异常提示

Specified cast is not valid.

我几乎可以肯定问题出在 SECOND_CODE 字符的强制转换要求 char(2) 上。另一方面,FIRST_CODE 工作正常。那么我是否正确添加了 SECOND_CODE 参数?有什么我想念的吗?

最佳答案

问题很可能是将 char 插入到 FIRST_CODE 中,即 CHAR(1)。这是一个限制为单个字符的string类型,不是单字符类型。如果您尝试插入一个长度超过一个字符的 string,但 RDBMS 将报告数据截断错误,但它希望您提供一个 string,而不是 char

这应该有效:

command.Parameters.AddWithValue("@FIRST_CODE", "A"); 

引用table that maps SQL Server's type to types of .NET获取更多信息。

关于c# - 尝试插入两个字母的字符时,指定的转换无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35851818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com