我正在尝试通过sql management studio将记录插入到表中,并在网站的Web表单中插入命令。
INSERT INTO [dbo].[Records] ([tp_ID], [Offense_ID], [LLO_ID], [LLLA], [SSN], [LastName], [FirstName], [MI], [Title], [Grade], [Organization], [BranchOfService], [Category], [DateCategory], [IsHoldover], [IsHoldoverDate])
VALUES (60033, N'E', 17, NULL, N'222-12-0222', N'SINGER', N'Te ', N'Y', NULL, N'SrA', N'703 Airbase', N'FORCE', NULL, NULL)
虽然当我访问网站并尝试查看记录时,我收到以下错误消息:
System.InvalidCastException:从类型“DBNull”到“Integer”类型的转换无效。
Line 349:ckIsHoldOver.Checked = (CInt(rdr("IsHoldover")) = -1)
---如果我通过网络表单创建记录,后面的代码中的vb可以捕获字段数据---
.Parameters.AddWithValue("@IsHoldover", ckIsHoldOver.Checked)
答案 0 :(得分:0)
不确定你的问题在这里。您 在IsHoldOver中插入一个空值,并且在您尝试将该null转换为整数的网站上。
也许尝试在IsHoldOver中添加一个值
INSERT INTO [dbo].[Records] ([tp_ID], [Offense_ID], [LLO_ID], [LLLA], [SSN], [LastName], [FirstName], [MI], [Title], [Grade], [Organization], [BranchOfService], [Category], [DateCategory], [IsHoldover], [IsHoldoverDate])
VALUES (60033, N'E', 17, NULL, N'222-12-0222', N'SINGER', N'Te ', N'Y', NULL, N'SrA', N'703 Airbase', N'FORCE', 0, NULL)
或处理网页上的空值,因为Curt会向您展示如何在下面进行操作。
答案 1 :(得分:0)
rdr("IsHoldover")
为NULL
,因此在使用CInt()
转换为整数时,会导致异常。
您可以更改INSERT
语句以插入Non-NULL
bit
值(1
或0
),或更改您的VB代码帐户这个可以为空的字段:
If Not IsDBNULL(rdr("IsHolderover")) Then ckIsHoldOver.Checked = (CInt(rdr("IsHoldover")) = -1)