【发布时间】:2012-10-15 23:47:46
【问题描述】:
我正在创建一个 Windows 表单,每当我们添加新员工时,用户都会填写该表单。如果我完整填写表格,我可以写入数据库,但如果一个字段留空,我会收到错误消息。在 SQL 表中,所有行都设置为允许空值,我可以通过 SQL Server Management Studio 插入空值,没有任何问题。
为简洁起见,我遗漏了十几个字段,但如果我将这段代码替换为我正在使用的代码,则会出现同样的错误。
Dim DBConnection As New SqlClient.SqlConnection
Dim cmd As New SqlClient.SqlCommand
Try
WOWConnection.ConnectionString = "Server=MyServerName;Database=Employee Database;Trusted_Connection=TRUE;"
WOWConnection.Open()
cmd.Connection = WOWConnection
cmd.CommandText = "INSERT INTO [dbo].[Employees]([FirstName],[LastName]) VALUES (@FirstName,@LastName)"
cmd.Parameters.AddWithValue("@FirstName", Me.EMP_FirstName.Text)
cmd.Parameters.AddWithValue("@LastName", Me.EMP_LastName.Text)
cmd.ExecuteNonQuery()
MsgBox("Sucess!")
Catch ex As Exception
MsgBox("error")
Finally
DBConnection.Close()
End Try
如何处理在 Windows 窗体上留空的字段?
【问题讨论】:
-
实际错误是什么?
-
它遇到了我的异常并弹出了我的“错误”消息框。我没有看到实际错误。调试器返回以下内容: System.Data.dll 中发生“System.Data.SqlClient.SqlException”类型的第一次机会异常线程“vshost.RunParkingWindow”(0x994)已退出,代码为 0(0x0)。线程“
”(0x1094) 已退出,代码为 0 (0x0)。程序“[7356] HR.vshost.exe: Managed (v4.0.30319)”已退出,代码为 0 (0x0)。 -
更改您的 catch 处理程序以显示异常!
-
将
MsgBox("error")更改为MsgBox(ex.Message) -
我看不出您的代码有任何本质上的错误。是否存在阻止空名称字段的数据库约束?
标签: sql vb.net visual-studio-2010