Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Visual Basic错误';靠近';的语法不正确'';_Sql Server_Vb.net_Forms_Database Connection_Visual Studio 2019 - Fatal编程技术网

Sql server Visual Basic错误';靠近';的语法不正确'';

Sql server Visual Basic错误';靠近';的语法不正确'';,sql-server,vb.net,forms,database-connection,visual-studio-2019,Sql Server,Vb.net,Forms,Database Connection,Visual Studio 2019,我使用的是Visual Studio 2019社区版,我有一个连接到SQL server的表单,我的Visual basic表单的连接测试成功。然而,当我尝试将数据放入数据库时,我在第14行得到了错误 System.Data.SqlClient.SqlException:“附近语法不正确”)。' 这是我的密码:我哪里出错了 导入System.Data.SqlClient 公开课表格1 Dim名称,您好,符合字符串条件 暗血如弦 以字符串的形式表示同意 Dim连接作为新的SqlConnection

我使用的是Visual Studio 2019社区版,我有一个连接到SQL server的表单,我的Visual basic表单的连接测试成功。然而,当我尝试将数据放入数据库时,我在第14行得到了错误

System.Data.SqlClient.SqlException:“附近语法不正确”)。'

这是我的密码:我哪里出错了

导入System.Data.SqlClient
公开课表格1
Dim名称,您好,符合字符串条件
暗血如弦
以字符串的形式表示同意
Dim连接作为新的SqlConnection(“服务器=DESKTOP-SNVR5AC;数据库=bloodform;集成安全性=true”)
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
“联系
Dim命令作为新的SqlCommand(“插入到表单中(全名、出生日期、电子邮件、城镇、血型、年龄、以前的捐献、任何疾病、血液检测阳性、心脏问题、出血障碍)”值(“&TextBox1.Text&“,”&DateTimePicker1.Text&“,”&TextBox2.Text&“,”&combox2.Text&“,”&ListBox2.Text&“,”&combox1.Text&“,”&GroupBox1.Text&“,”&GroupBox2.Text&“,”&GroupBox3.Text&“,”&GroupBox4.Text&“,”&GroupBox5.Text&“,)”,连接)
connection.Open()
如果command.ExecuteOnQuery()=1,则
MsgBox(“提交的申请”)
其他的
MsgBox(“未提交申请”)
如果结束
连接。关闭()
'复选框
如果CheckBox1.Checked=False,则
同意=“请同意条款和条件”
MsgBox(同意)
ElseIf CheckBox1.Checked=True然后
欢迎辞
名称=(TextBox1.Text)
您好=“欢迎”
MsgBox(hello&Space(2)和name)
“年龄资格
如果ComboBox1.SelectedIndex=0,则
合格=“您未成年”
MsgBox(合格)
ElseIf ComboBox1.SelectedIndex=1,然后
合格=“您可以献血。”
'MsgBox(合格)
“血
如果ListBox2.SelectedItem.ToString()=“Apositive”,则
blood=“您是A+,可以捐赠给A+和AB+”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择editem.ToString()=“b正”,然后
blood=“您是B+,可以捐赠给B+和AB+”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择EdItem.ToString()=“Opositive”,然后
blood=“您是O+,可以捐赠给O+、A+、B+和AB+”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择editem.ToString()=“ABpositive”,然后
blood=“您是AB+,可以捐赠给AB+”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择editem.ToString()=“Anegative”,然后
blood=“您是A-,可以捐赠给A+、A-、AB+和AB-”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择EdItem.ToString()=“B阴性”,然后
blood=“您是B-,可以捐赠给B+、B-、AB+和AB-”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择EdItem.ToString()=“Onegative”,然后
blood=“你是O-并且可以捐赠给所有人”
MsgBox(合格和空间(1)和血液)
ElseIf ListBox2.选择EdItem.ToString()=“放弃”,然后
blood=“您是AB-并且可以捐赠给AB+和AB-”
MsgBox(合格和空间(1)和血液)
如果结束
如果结束
如果结束
端接头
末级

SQL查询的结尾包含不必要的逗号

GroupBox4.Text & "','" & GroupBox5.Text & "',)", connection)
我建议您使用sql参数来传递值,它更安全(防止sql注入)、智能且易于控制

尝试:


SQL查询的结尾包含不必要的逗号

GroupBox4.Text & "','" & GroupBox5.Text & "',)", connection)
我建议您使用sql参数来传递值,它更安全(防止sql注入)、智能且易于控制

尝试:


要记住的一些事情:

尝试在整个表单中重复使用相同的连接对象是不好的。这会干扰称为连接池的过程

使用字符串连接将用户输入放入SQL查询中是不好的。事实上,很难夸大这种做法有多糟糕

如果引发异常,原始代码将无法关闭连接

您可能应该在插入记录之前检查合格性

Dim connectionString As String=“Server=DESKTOP-SNVR5AC;Database=bloodform;integratedsecurity=true”
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
如果未选中复选框1。则选中
MsgBox(“请同意条款和条件”)
出口接头
如果结束
如果ComboBox1.SelectedIndex=0,则
MsgBox(“您未成年”)
出口接头
如果结束
将SQL设置为字符串=
“惰性化为形式(
全名、出生日期、电子邮件、城镇、血型、年龄、以前的献血、任何疾病、血检阳性、心脏问题、出血性疾病
)价值观(
@FullNamae、@DOB、@Email、@Town、@BloodType、@Age、@previous捐赠、@Diseases、@BloodTest、@cardial、@bloedingdisorders
)"
Dim RowsChanged为整数
将cn用作新的SqlConnection(connectionString)_
cmd作为新的SqlCommand(SQL,cn)
“我必须在这里猜测类型和长度。您应该使用数据库中的实际类型定义。
cmd.Parameters.Add(“@FullName”,SqlDbType.NVarChar,50).Value=TextBox1.Text
cmd.Parameters.Add(“@DOB”,SqlDbType.DateTime).Value=DateTimePicker1.Value
cmd.Parameters.Add(“@Email”,SqlDbType.NVarChar,85).Value=TextBox2.Text
cmd.Paramerers.Add(“@Town”,SqlDbType.NVarChar,50).Value=ComboBox2.Text
cmd.Parameters.Add(“@BloodType”,SqlDbType.VarChar,3).Va
Dim connectionString As String = "Server = DESKTOP-SNVR5AC; Database = bloodform; Integrated security = true"
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Using connection As New SqlConnection(connectionString)
        Try
            connection.Open()

            Dim command = New SqlCommand
            command.Connection = connection
            command.CommandText = "insert into form(Full_name) values (@parameter)"
            command.Parameters.AddWithValue("@parameter", TextBox1.Text)

            If command.ExecuteNonQuery() Then
                MsgBox("Application submitted")
            Else
                MsgBox("Application not submitted")
            End If
            command.Dispose()

        Catch ex As Exception
            MessageBox.Show("Error while inserting record on table..." & ex.Message, "Insert Records")
        End Try
    End Using
    ...

End Sub