1

新しい従業員を追加するたびにユーザーが入力するWindowsフォームを作成しています。フォームに完全に入力するとデータベースに書き込むことができますが、1つのフィールドを空白のままにすると、エラーが発生します。SQLテーブルでは、すべての行がnullを許可するように設定されており、SQL ServerManagementStudioを介してnull値を問題なく挿入できます。

簡潔にするために、1ダースほどのフィールドを省略しましたが、このコードを使用しているコードに置き換えると、同じエラーが発生します。

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フォームで空白のままになっているフィールドをどのように処理しますか?

4

1 に答える 1

1

値をSQLに渡す前に、挿入される値をテストします。SQLではNULL値と空は同じではないことに注意してください。

cmd.CommandText = "INSERT INTO [dbo] .Employees VALUES(@ FirstName、@ LastName)"

文字列でない場合.IsNullOrEmpty(Me.EMP_FirstName.Text)Then

      cmd.Parameters.AddWithValue("@FirstName", Me.EMP_FirstName.Text)

そうしないと

      cmd.Parameters.AddWithValue("@FirstName", DBNull.Value)

EndIf

cmd.ExecuteNonQuery()

于 2013-08-21T08:33:48.377 に答える