Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET参数没有默认值_Vb.net - Fatal编程技术网

VB.NET参数没有默认值

VB.NET参数没有默认值,vb.net,Vb.net,我创建这段代码是为了将项目作为emp_状态插入表名,问题出在@d3中,当我从组合框中选择项目时,它会给我一个错误,参数@d3没有默认值 这是代码,请给我一个解决方案 Dim sSQL As String = "insert into emp_state(Badge,Name,State,Date_of_Join,Date_of_Termination,Reasons,Information) values (@d1,@d2,@d3,@d4,@d5,@d6,@d7)" Di

我创建这段代码是为了将项目作为emp_状态插入表名,问题出在@d3中,当我从组合框中选择项目时,它会给我一个错误,参数@d3没有默认值

这是代码,请给我一个解决方案

Dim sSQL As String = "insert into emp_state(Badge,Name,State,Date_of_Join,Date_of_Termination,Reasons,Information) values (@d1,@d2,@d3,@d4,@d5,@d6,@d7)"
            Dim cmd As OleDbCommand = New OleDbCommand(sSQL, cn)


        ' Badge
        Dim Badge As OleDbParameter = New OleDbParameter("@d1", OleDbType.VarWChar, 8)
        Badge.Value = TextBox1.Text.ToString()
        cmd.Parameters.Add(Badge)

        ' Name
        Dim Name As OleDbParameter = New OleDbParameter("@d2", OleDbType.VarWChar, 50)
        Name.Value = TextBox2.Text.ToString()
        cmd.Parameters.Add(Name)

        ' State
        ComboBox1.SelectedIndex = 0
        Dim State As OleDbParameter = New OleDbParameter("@d3", OleDbType.VarWChar, 20)
        ComboBox1.SelectedIndex = ComboBox1.Items.IndexOf("State")
        cmd.Parameters.Add(State)


        'Date_of_Join
        Dim Date_of_Join As OleDbParameter = New OleDbParameter("@d4", OleDbType.Date, 15)
        Date_of_Join.Value = dtpDOB.Text.ToString()
        cmd.Parameters.Add(Date_of_Join)

        'Date_of_Termination
        Dim Date_of_Termination As OleDbParameter = New OleDbParameter("@d5", OleDbType.Date, 15)
        Date_of_Termination.Value = DateTimePicker1.Text.ToString()
        cmd.Parameters.Add(Date_of_Termination)

        'Reasons
        Dim Reasons As OleDbParameter = New OleDbParameter("@d6", OleDbType.VarWChar, 9999)
        Reasons.Value = TextBox3.ToString()
        cmd.Parameters.Add(Reasons)

        'Information
        Dim Information As OleDbParameter = New OleDbParameter("@d7", OleDbType.VarWChar, 9999)
        Information.Value = TextBox4.ToString()
        cmd.Parameters.Add(Information)
再读一遍这部分

  • 将组合框设置为选择第一项
  • 然后创建参数
  • 然后,通过尝试查找某些项,将组合框的索引设置为索引
  • 然后将空参数添加到参数列表中
  • 我想你想做的是:

       ' State
        ' ComboBox1.SelectedIndex = 0
        Dim State As OleDbParameter = New OleDbParameter("@d3", OleDbType.VarWChar, 20)
        State.Value = ComboBox1.SelectedItem.Value
        cmd.Parameters.Add(State)
    

    是否在组合框1中选择了任何内容?此外,您还可以使用
    AddWithValue
    -
    cmd.Parameters.AddWithValue(“@d3”,Combobobox1.Items.IndexOf(“状态”)来缩短代码
    当我尝试选择它时,没有选择的项目,直接从项目中给我第一个项目,并且它在DB
    @d3
    中没有更新,不遵循所有其他参数的模式-在一行上所有其他的
    Dim as OldDbParameter
    ,然后在下一行上设置该参数的值。Bu您没有为
    State
    参数设置任何值。我在组合框中有四项,分别为辞职、释放、调动和终止,当我尝试选择第二项或第三项时,它不能是唯一的自动为我选择第一项??解决方案是什么?无论您在该组合框中有多少项,如果您正在操作选项是用正确的值设置的。上述选项通常会将正确的值添加到您的参数中。您遇到的问题是,您自己通过执行combobox 1将combobox设置为第一项。SelectedIndex=0状态的access DB中的类型是文本,是否需要更改?不必更改。但是,请确保您的combobox是h作为选项标签(或listItems)的正确值。为了检查,您还应将网页代码/代码张贴在后面
       ' State
        ' ComboBox1.SelectedIndex = 0
        Dim State As OleDbParameter = New OleDbParameter("@d3", OleDbType.VarWChar, 20)
        State.Value = ComboBox1.SelectedItem.Value
        cmd.Parameters.Add(State)