我一直在尝试写数据库,这几乎完成了我唯一的问题,即无线电值,因为在网络表单中有两个问题都回答是或否。我在stackover上找到了一个例子流是

Dim rbval As Integer
If RadioButton1.Checked Then
    rbval = 1
Else
    rbval = 2
End If
cmd.Parameters.Add(New SqlParameter("@ethics", SqlDbType.Int))
cmd.Parameters("@ethics").Value = rbval


但是它没有用,并一直向我提供错误消息并突出显示代码的cmd.ExecuteNonQuery部分。然后,我尝试使用它并放入:

Dim rbval As Integer
        If RadYes0.Checked Then
            rbval = 1
        Else
            rbval = 2
        End If
        cmd.Parameters.Add("@TeaAndCoffee", SqlDbType.Text).Value = RadYes0.Text


当我选择“是”时它确实起作用,但是当我选择“否”时,Yes值一直存储在数据库中,我可以看到代码出了问题的地方,因为它总是从我尝试修复的代码中选择是。 。我想知道是否有人提出建议?下面是完整的代码

   Dim Con As SqlConnection
    Dim cmd As SqlCommand
    Dim recordsAffected As String
    Dim cmdstring As String = "INSERT [Event Table](EventTypeID, EventName, VenueName, NumberOfGuests, Date, ClientAddress, WeddingName, BuildingAddress, Canapes, Starter, MainCourse, Dessert, TeaAndCoffee) Values(@EventTypeID, @EventName, @VenueName, @NumberOfGuests, @Date, @ClientAddress, @WeddingName, @BuildingAddress, @Canapes, @Starter, @MainCourse, @Dessert, @TeaAndCoffee)"
    Con = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\YellowDoor.mdf;Integrated Security=True;User Instance=True")
    cmd = New SqlCommand(cmdstring, Con)
    cmd.Parameters.Add("@EventTypeID", SqlDbType.Text).Value = EventTypeDD.SelectedValue
    cmd.Parameters.Add("@EventName", SqlDbType.Text).Value = EventNametxt.Text
    cmd.Parameters.Add("@VenueName", SqlDbType.Text).Value = VenueLoDD.SelectedValue
    cmd.Parameters.Add("@NumberOfGuests", SqlDbType.Int).Value = CInt(NumOfGtxt.Text)
    cmd.Parameters.Add("@Date", SqlDbType.Int).Value = CInt(DateTxt.Text)
    cmd.Parameters.Add("@ClientAddress", SqlDbType.Text).Value = txtAddress.Text
    cmd.Parameters.Add("@WeddingName", SqlDbType.Text).Value = txtWedding.Text
    cmd.Parameters.Add("@BuildingAddress", SqlDbType.Text).Value = txtBAddress.Text
    cmd.Parameters.Add("@Canapes", SqlDbType.Text).Value = txtCanapes.Text
    cmd.Parameters.Add("@Starter", SqlDbType.Text).Value = txtStarter.Text
    cmd.Parameters.Add("@MainCourse", SqlDbType.Text).Value = txtMainCourse.Text
    cmd.Parameters.Add("@Dessert", SqlDbType.Text).Value = txtDessert.Text
    Dim rbval As Integer
    If RadYes0.Checked Then
        rbval = 1
    Else
        rbval = 2
    End If
    cmd.Parameters.Add("@TeaAndCoffee", SqlDbType.Text).Value = RadYes0.Text


    Con.Open()

    recordsAffected = cmd.ExecuteNonQuery
    Con.Close()
    Response.Redirect("MenuForm.aspx")

End Sub

最佳答案

查看您的SQL数据库中的表列类型。如果有点(最符合逻辑的方式),它就像一个馅饼一样简单:

cmd.Parameters.Add("@Yourparam", SqlDbType.Bit).Value = IIf (Radyes0.Checked,1,0)


对于字符类型:

cmd.Parameters.Add("@Yourparam", SqlDbType.Char).Value = IIf (Radyes0.Checked,"Y","N")


对于NVarchar类型:

cmd.Parameters.Add("@Yourparam", SqlDbType.Nvarchar).Value = IIf (Radyes0.Checked,"Yes","No")


简单查看您的餐桌设计将告诉您您需要的句子。始终使用与数据库相同的数据类型。

顺便说一句:之所以因为这个例子

Dim rbval As Integer
    If RadYes0.Checked Then
        rbval = 1
    Else
        rbval = 2
    End If
    cmd.Parameters.Add("@TeaAndCoffee", SqlDbType.Text).Value = RadYes0.Text


总是将“是”保存到您的数据库中,是因为radiobutton.text给出了单选按钮的文本标签,我相信您有一个单选按钮(是)和一个单选按钮(否),对吗?

关于mysql - 如何将单选按钮值写入Sql数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27946239/

10-10 09:14
查看更多