【发布时间】:2015-10-09 22:51:05
【问题描述】:
我正在 MSVStudio 中创建注册表单,但总是出现错误。我已经将每个变量设置为它们自己的数据类型,但同样的错误提示给我。 "从字符串 "The INSERT INTO statement contai" 到类型 'Boolean' 的转换无效。"
这是我在课堂上的功能
Function registercust(ByVal a As String, ByVal b As String, ByVal c As String, ByVal d As String, ByVal f As String, ByVal g As String, ByVal h As DateTime, ByVal i As String, ByVal j As String)
Dim conn As New OleDb.OleDbConnection
Dim dr As OleDb.OleDbDataReader
Dim rs As New OleDb.OleDbCommand
Try
conn.ConnectionString = cs
conn.Open()
query = "Insert into custinfo (`custid`,`lastname`,`firstname`,`mi`,`address`,`telephone`,`birthday`,`age`,`status`) values('" & a & "','" & b & "','" & c & "','" & d & "','" & f & "','" & g & "','" & h & "','" & i & "','" & j & "')"
rs = New OleDb.OleDbCommand(query, conn)
dr = rs.ExecuteReader
If dr.Read Then
Return True
Else
Return False
End If
Catch ex As Exception
Return ex.Message
End Try
conn.Close()
End Function
这是我的代码哟我的按钮
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If class1.chkfieldss(TextBox14.Text, TextBox1.Text, _
TextBox8.Text, TextBox9.Text, _
TextBox10.Text, TextBox11.Text, TextBox12.Text) = False Then
If class1.registercust(TextBox14.Text, TextBox1.Text, TextBox8.Text, TextBox9.Text, TextBox10.Text, _
TextBox11.Text, DateTimePicker1.Value, _
TextBox12.Text, ComboBox3.SelectedItem) = False Then
MessageBox.Show("REGISTER SUCCESSFULLY", "Welcome", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
MessageBox.Show("Something Happen", "Error", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End If
Else
MessageBox.Show("Complete all fields", "Error", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End If
End Sub
【问题讨论】:
-
您的撇号在指定的插入列上看起来很奇怪。值上的撇号看起来很正常。除此之外,您绝对应该使用用户参数化 SQL
-
实际上,您的代码充满了各种各样的问题。请在下面查看我的答案,以了解其中至少一些已解决
-
您的函数显然设计为返回一个布尔值,但在异常情况下,您尝试返回一个字符串。将
Option Strict On放在代码顶部或在项目设置中打开它。顺便说一句,如果出现异常,您的conn.Close()将永远不会被调用。您应该始终使用Using块内的连接。
标签: vb.net boolean syntax-error