所以基本上我有这个项目有一个注册表格。我已经完成了所有必要的步骤但是当我输入文本框时它给了我一个异常 "Syntax error (missing operator) in query expression 'Paula Angela'."
我想因为它有一个空格或者其他东西,因为当我再次运行它并使文本中没有任何空格时,它起作用了。我想知道我应该放什么代码,以便即使记录中有空格,项目也可以正常运行?
抱歉,这是我的代码
公共类Create_an_account
Dim cnn As New OleDb.OleDbConnection
Private Sub txtConfirm_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtConfirm.TextChanged
If Not txtConfirm.Text = txtPass.Text Then
Label11.Text = "Passwords do not match"
Else
Label11.Text = ""
End If
End Sub
Private Sub RefreshData()
If Not cnn.State = ConnectionState.Open Then
cnn.Open()
End If
Dim da As New OleDb.OleDbDataAdapter("SELECT [First Name], " & _
"[Last Name], [Address], [Contact Number], [Username], " & _
"[Email Address], [Password], [Credit Card Number] " & _
" FROM Accounts ORDER BY [First Name]", cnn)
Dim dt As New DataTable
da.Fill(dt)
My_Account.dgvAccount.DataSource = dt
cnn.Close()
End Sub
Private Sub btnRegister_Click(sender As System.Object, e As System.EventArgs) Handles btnRegister.Click
If txtFirst.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label16.Text = "*"
End If
If txtLast.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label15.Text = "*"
End If
If txtAddress.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label14.Text = "*"
End If
If txtContact.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label13.Text = "*"
End If
If txtUsername.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label17.Text = "*"
End If
If txtEmail.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label18.Text = "*"
End If
If txtPass.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label19.Text = "*"
End If
If txtConfirm.Text = "" Then
Me.Show()
Label12.Text = "Some required information is missing. Please fill up marked label/s."
Label20.Text = "*"
End If
If txtFirst.Text <> "" And txtLast.Text <> "" And txtAddress.Text <> "" And txtContact.Text <> "" And _
txtUsername.Text <> "" And txtEmail.Text <> "" And txtPass.Text <> "" And txtConfirm.Text <> "" Then
Dim cmd As New OleDb.OleDbCommand
If Not cnn.State = ConnectionState.Open Then
cnn.Open()
End If
cmd.Connection = cnn
cmd.CommandText = "INSERT INTO Accounts([First Name], [Last Name], [Address], " & _
"[Contact Number], [Username], [Email Address], [Password], [Credit Card Number]) " & _
" VALUES(" & txtFirst.Text & ",'" & txtLast.Text & "','" & _
txtAddress.Text & "','" & txtContact.Text & "','" & _
txtUsername.Text & "','" & txtEmail.Text & "','" & txtPass.Text & "','" & _
txtCredit.Text & "')"
cmd.Parameters.AddWithValue("@p1", txtFirst.Text)
cmd.Parameters.AddWithValue("@p2", txtLast.Text)
cmd.Parameters.AddWithValue("@p3", txtAddress.Text)
cmd.Parameters.AddWithValue("@p4", txtContact.Text)
cmd.Parameters.AddWithValue("@p5", txtUsername.Text)
cmd.Parameters.AddWithValue("@p6", txtEmail.Text)
cmd.Parameters.AddWithValue("@p7", txtPass.Text)
cmd.Parameters.AddWithValue("@p8", txtCredit.Text)
cmd.ExecuteNonQuery()
RefreshData()
cnn.Close()
MsgBox("Account created successfully.", MsgBoxStyle.Information, "Sign Up")
Me.Hide()
Login_Form.Show()
Me.Close()
End If
End Sub
Private Sub btnCancel_Click(sender As System.Object, e As System.EventArgs) Handles btnCancel.Click
Select Case MsgBox("Do you want to go back?", MsgBoxStyle.YesNo, "Cancel")
Case MsgBoxResult.Yes
Me.Hide()
Login_Form.Show()
Me.Close()
Case MsgBoxResult.No
Me.Show()
End Select
End Sub
答案 0 :(得分:0)
使用预准备语句时,您需要为占位符提供一个名称,以便稍后使用AddWithValue()过程引用它们。
另请参阅this question以及使用&#34; @ image&#34;标识符