未填写一个文本框时解决方案崩溃



目前,我正在尝试编写代码以将新学生添加到数据库表中。 但是,当按提交时未填充其中一个文本框时,解决方案将崩溃。 请告诉我一种编写代码的方法:

Imports System.Data.OleDb
Public Class AddNewStudent
Dim cnnOLEDB As New OleDbConnection
Dim cmdInsert As New OleDbCommand
Dim con = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:ASSIGNMENTvbnassignmentfinal.accdb;"
Dim cmdDelete As New OleDbCommand
Dim cmdUpdate As New OleDbCommand
Dim cmdSearch As New OleDbCommand
Private Sub AddNewStudentSD_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cnnOLEDB.ConnectionString = con
cnnOLEDB.Open()
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
txtsem.ResetText()
txtsfn.ResetText()
txtsid.ResetText()
txtsln.ResetText()
txtsph.ResetText()
txtint.ResetText()
cmbgen.ResetText()

End Sub
Private Sub btnHome_Click(sender As Object, e As EventArgs) Handles btnhome.Click
UserHomepage.Show()
Me.Hide()
End Sub
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnsubmit.Click
cmdInsert.CommandText = "Insert into student Values(" + txtsid.Text + ",'" + txtint.Text + "','" + txtsfn.Text + "','" + txtsln.Text + "', '" + cmbgen.Text + "', " + txtsph.Text + ", '" + txtsem.Text + "');"
cmdInsert.CommandType = CommandType.Text
cmdInsert.Connection = cnnOLEDB
cmdInsert.ExecuteNonQuery()
MessageBox.Show("Are you sure you want to proceed?", "Proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If DialogResult.Yes Then
UserHomepage.Show()
Me.Hide()
ElseIf DialogResult.No Then
Me.Show()
UserHomepage.Hide()
End If
End Sub
End Class
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnsubmit.Click
cnnOLEDB.Open()
cmdInsert.CommandText = "Insert into student Values(" + txtsid.Text + ",'" + txtint.Text + "','" + txtsfn.Text + "','" + txtsln.Text + "', '" + cmbgen.Text + "', '" + txtsph.Text + "', '" + txtsem.Text + "');"
cmdInsert.CommandType = CommandType.Text
cmdInsert.Connection = cnnOLEDB
cmdInsert.ExecuteNonQuery()
cnnOLEDB.Close()
MessageBox.Show("Are you sure you want to proceed?", "Proceed", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If DialogResult.Yes Then
UserHomepage.Show()
Me.Hide()
ElseIf DialogResult.No Then
Me.Show()
UserHomepage.Hide()
End If
End Sub

我不认为Visual Studio具有像MS-Access在其VBA环境中那样NZ function

您可以创建自己的函数来模拟它:

Public Shared Function Nz(ByVal Value As Object, Optional ByVal Default as Object = String.Empty) As Object
If Value Is Nothing OrElse IsDBNull(Value) Then
Return Default
Else
Return Value
End If
End Function

然后修改动态 SQL 代码行,将任何 Null 文本字段转换为空字符串。

cmdInsert.CommandText = "Insert into student Values(" + NZ(txtsid.Text,"") + _
",'" + NZ(txtint.Text,"") + "','" + NZ(txtsfn.Text,"") + "','" + _
NZ(txtsln.Text,"") + "', '" + NZ(cmbgen.Text,"") + "', '" + NZ(txtsph.Text,"") _
+ "', '" + NZ(txtsem.Text,"") + "');"

最新更新