我一直在尝试写数据库,这几乎完成了我唯一的问题,即无线电值,因为在网络表单中有两个问题都回答是或否。我在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/