如何将单选按钮值写入 Sql 数据库?
How do you write Radio Button values to a Sql Database?
我一直在尝试写入我的数据库,它几乎完成了我遇到的唯一问题是无线电值,因为在网络表单中有两个问题都回答是或否。我找到了一个这个关于 stackover flow 的例子是
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
当我 selected "Yes" 时它确实有效但是当我 selected "No" 时,Yes 值一直存储在数据库中,我可以看到我在哪里代码出错了,因为它总是从我试图修复的代码中变为 select 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 数据库中的 table 列类型。如果有点(最合乎逻辑的方式)它就像馅饼一样简单:
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")
只要看一下您的 table 设计,您就会知道您需要哪个句子。始终使用与数据库相同的数据类型。
顺便说一句:原因是因为这个例子
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 保存到您的数据库中,是因为 radiobutton.text 给出了单选按钮的文本标签,我相信您有一个单选按钮表示是,一个单选按钮表示否,对吧?
我一直在尝试写入我的数据库,它几乎完成了我遇到的唯一问题是无线电值,因为在网络表单中有两个问题都回答是或否。我找到了一个这个关于 stackover flow 的例子是
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
当我 selected "Yes" 时它确实有效但是当我 selected "No" 时,Yes 值一直存储在数据库中,我可以看到我在哪里代码出错了,因为它总是从我试图修复的代码中变为 select 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 数据库中的 table 列类型。如果有点(最合乎逻辑的方式)它就像馅饼一样简单:
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")
只要看一下您的 table 设计,您就会知道您需要哪个句子。始终使用与数据库相同的数据类型。
顺便说一句:原因是因为这个例子
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 保存到您的数据库中,是因为 radiobutton.text 给出了单选按钮的文本标签,我相信您有一个单选按钮表示是,一个单选按钮表示否,对吧?