Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 SelectCommand属性在调用';填充&x27;问题_Vb.net_Ms Access - Fatal编程技术网

Vb.net SelectCommand属性在调用';填充&x27;问题

Vb.net SelectCommand属性在调用';填充&x27;问题,vb.net,ms-access,Vb.net,Ms Access,在调用“填充”问题之前,SelectCommand属性尚未初始化: Private Sub DeleteButton_Click(sender As Object, e As EventArgs) Handles DeleteButton.Click Dim tables As DataTableCollection Dim source1 As New BindingSource Dim row As New Integer Try ds = N

在调用“填充”问题之前,SelectCommand属性尚未初始化:

Private Sub DeleteButton_Click(sender As Object, e As EventArgs) Handles DeleteButton.Click
    Dim tables As DataTableCollection
    Dim source1 As New BindingSource
    Dim row As New Integer
    Try
        ds = New DataSet
        tables = (ds.Tables)
        da = New OleDbDataAdapter
        da.Fill(ds, "Booking")
        Dim cmdstr As String = "delete * from [Booking] where ID = " & DataGridView1.SelectedRows(0).Cells(0).Value.ToString()
        Dim cmd As New OleDbCommand(cmdstr, objCon)
        da.SelectCommand = cmd
        objCon.Open()
        cmd.ExecuteNonQuery()
        objCon.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
改变

da.SelectCommand = cmd 

da.DeleteCommand = cmd

在代码开头调整
Dim
语句;您在代码中从不使用表、source1或row,所以声明它们是没有意义的

Try
上,您将
新数据集
分配给ds。这是空的,因此将表集合分配给表没有意义。这也将是空的

接下来创建一个
新数据适配器
。新的DataAdapter没有select命令,因此它将无法填充任何内容

然后将删除命令分配给DataAdapter的SelectCommand属性。这毫无意义

最后执行命令。如果没有其他代码,这应该可以工作

使数据库对象保持本地状态,以便可以控制它们的关闭和处理<代码>使用…结束使用为您解决此问题。Using还充当Dim语句,因此它还声明变量。通过用逗号分隔多个变量,可以使用一个USE包含多个变量

我猜是youid字段的数据类型。检查你的数据库

Private Sub DeleteButton_Click(sender As Object, e As EventArgs) Handles DeleteButton.Click
    Try
        Using cn As New OleDbConnection("Your connection string"),
                cmd As New OleDbCommand("delete * from [Booking] where ID = @ID", cn)
            cmd.Parameters.Add("@ID", OleDbType.Integer).Value = DataGridView1.SelectedRows(0).Cells(0).Value
            cn.Open()
            cmd.ExecuteNonQuery()
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

不要对非查询使用
SelectCommand