vb.net将复选框值插入MS server数据库

vb.net将复选框值插入MS server数据库,vb.net,Vb.net,我想将复选框值插入MS server数据库,但不起作用,显示一些错误“运算符”&“未为字符串和复选框定义” 这里是我的代码和数据库表名“test”列名“chk”,任何人都可以给我建议吗?谢谢 受保护的子chk(发送方作为对象,e作为事件参数)处理chk.CheckedChanged Dim connectionString As String=“数据源=xxxxx;初始目录=xxx;用户Id=xxx;密码=xxx;集成安全=SSPI” 使用cn2作为新的SqlConnection(connec

我想将复选框值插入MS server数据库,但不起作用,显示一些错误“运算符”&“未为字符串和复选框定义”

这里是我的代码和数据库表名“test”列名“chk”,任何人都可以给我建议吗?谢谢

受保护的子chk(发送方作为对象,e作为事件参数)处理chk.CheckedChanged
Dim connectionString As String=“数据源=xxxxx;初始目录=xxx;用户Id=xxx;密码=xxx;集成安全=SSPI”
使用cn2作为新的SqlConnection(connectionString)
Dim cmd2作为新的SqlCommand
如果cbxIsCloud.Checked=True,则
cmd2=新的SqlCommand(“插入测试(chk)值(chk)”,cn2)
cn2.开放式()
cmd2.ExecuteNonQuery()
cn2.关闭()
如果结束

结束使用
我认为您对整个参数问题仍然有点不了解,我认为您需要这样做

Protected Sub chk(sender As Object, e As EventArgs) Handles chk.CheckedChanged

 Dim connectionString As String = "data source=xxxxx;Initial Catalog=xxx;User Id=xxx;Password=xxx;Integrated Security=SSPI"
    Using cn2 As New SqlConnection(connectionString)
        Dim cmd2 As New SqlCommand
        If cbxIsCloud.Checked = True Then
            cmd2 = New SqlCommand("Insert into test (chk) VALUES (@chk)", cn2)
            cmd2.Parameters.Add("@chk", SqlDbSqlDbType.Bit).Value = chk.Value
            cn2.Open()
            cmd2.ExecuteNonQuery()
            cn2.Close()

        End If
    End Using
End Sub
您会注意到,这里我专门输入了参数,并且查看了复选框控件值。在上面的示例中,您正在尝试将复选框本身保存到DB,该DB将不起作用或给出不希望的结果


有一件事需要注意,我不能100%确定数据库中Test.Chk的数据类型。我假设它是一个布尔值,但我从您最初的问题中回忆起,它看起来像您在保存字符串值时要做的第一件事是使用参数。虽然有安全方面的好处,但最好的部分是它使整个sql语句的构造变得更加简单、可维护和可靠。感谢Hursey,所以它应该更改“插入测试(chk)值(@chk)”并使用Parameters.AddWithValue?ThanksandWithValue应谨慎使用,可能会导致某些意外的类型转换。最好是添加参数并明确设置类型。但是当我点击按钮时,数据库没有任何记录。你知道吗?谢谢执行非查询的结果是什么?