Vb.net 参数@gender没有默认值
向我的Vb.net 参数@gender没有默认值,vb.net,Vb.net,向我的OleDbCommand添加参数时出错。错误告诉我@Gender没有默认值 SQL = "INSERT INTO MEMBER ( [RFID], [ID], [FULLNAME], [POSITION], [GENDER]," & _ " [DATEENCODED] )VALUES ( @RFID, @ID, @FULLNAME, @POSITION, @GENDER, @DATEENCODED)" Dim cmd As New OleDb.OleDbComman
OleDbCommand
添加参数时出错。错误告诉我@Gender
没有默认值
SQL = "INSERT INTO MEMBER ( [RFID], [ID], [FULLNAME], [POSITION], [GENDER]," & _
" [DATEENCODED] )VALUES ( @RFID, @ID, @FULLNAME, @POSITION, @GENDER, @DATEENCODED)"
Dim cmd As New OleDb.OleDbCommand(SQL, conn)
cmd.Parameters.Add(New OleDb.OleDbParameter("@RFID", Form3.txtrfid.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@ID", Form3.txtid.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@FULLNAME", a))
cmd.Parameters.Add(New OleDb.OleDbParameter("@POSITION", Form3.txtpost.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("@GENDER", Form3.cbogen.SelectedItem))
cmd.Parameters.Add(New OleDb.OleDbParameter("@DATEENCODED", b))
在设计时,将组合框的DropDownStyle属性设置为DropDownList使用数据源,而不是在设计时向集合中添加项或在运行时添加项或项.add或项.AddRange
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim G() As String = {"Male", "Female", "Other"}
ComboBox1.DataSource = G
MessageBox.Show(ComboBox1.SelectedItem.ToString)
End Sub
您是否确实检查了执行代码时
Form3.cbogen.SelectedItem
的值?如果这就是您分配给该参数的内容,并且您被告知该参数没有值,那么您应该怀疑该表达式可能没有值。我应该做什么似乎您正在使用类Form3的默认实例。如果是,则该实例中的cbogen可能没有SelectedItem属性的值。如果需要了解默认实例,请开始。不要大叫。所有的首都都在呼喊。:-)这与问题无关,但微软建议“将数组指示符放在类型上,而不是变量上”,即Dim G As String()={“男性”、“女性”、“其他”}
。“我肯定我也多次忘记了往哪个方向走了。”安德烈·莫尔顿感谢您提供了有关数组指示符的提示。至于这个问题,这应该保证Form3.cbogen.SelectedItem.ToString
有一个值。最好使用“未知”作为第一个要对齐的值,否则如果用户没有选择值,它将保证为“男性”。@AndrewMorton再次感谢您。我在facebook的某个地方看到了一份真正政治正确的名单,这份名单很长,也很复杂。我不知道有一个合适的方式来列出性别。我想如果我是为别致的菲力牛排编码,我的列表还是可以接受的。:-)