删除记录VB2010 w / TableAdapter

时间:2014-12-13 06:57:37

标签: visual-studio-2010 ms-access-2010

这应该不是这么难......但现在已经很晚了。

我正在处理一个简单的表单,并尝试在使用TableAdapter时从连接的DataSource中删除记录。这是TableAdapter的SQL;

DELETE FROM Main WHERE (ID = ?) AND (tbl_Job_Name = ?)

主要是表名,只有两个字段。

我正在使用这些数据填充一个ComboBox,我使用Button来调用这样的Delete()动作;

 Private Sub btnDeleteJob_Click(sender As Object, e As System.EventArgs) Handles btnDeleteJob.Click
    Dim deleteJobAdapter As New DCGDataSetTableAdapters.MainTableAdapter
    deleteJobAdapter.DeleteQuery(ComboBox2.SelectedIndex, ComboBox2.SelectedText)
End Sub

当我破坏代码时,我可以看到ID值,但是SelectedText字段是空白的,当然,当它在记录中运行时不会被删除。理想情况下,我想在ComboBox中传递所选记录的ID以删除记录。我错过了什么?

3 个答案:

答案 0 :(得分:0)

尝试,

deleteJobAdapter.DeleteQuery(ComboBox2.SelectedIndex, ComboBox2.Text)

SelectedText属性:

获取或设置在ComboBox的可编辑部分中选择的文本。

文字属性:

获取或设置与此控件关联的文本。

您可以使用SelectedText属性来检索或更改ComboBox控件中当前选定的文本。但是,您应该知道,由于用户交互,选择可以自动更改。例如,如果在按钮Click事件处理程序中检索SelectedText值,则该值将为空字符串。这是因为当输入焦点从组合框移动到按钮时,将自动清除选择。

当组合框失去焦点时,选择点将移动到文本的开头,并且任何选定的文本都将被取消选中。在这种情况下,获取SelectedText属性将检索空字符串,并设置SelectedText属性将指定的值添加到文本的开头。

答案 1 :(得分:0)

当我输入代码时;

deleteJobAdapter.DeleteQuery(ComboBox2.SelectedIndex, ComboBox2.Text)

我的断点显示记录中的正确文本,但我注意到ID值不正确,SelectedIndex返回记录本身的序号,以“0”开头。所以看起来SelectedIndex不会返回实际的ID值......

回到原来的问题,所选的记录仍未删除。

答案 2 :(得分:0)

这是我最终使用的;

    Dim delJobID = ComboBox2.SelectedValue
    Dim delJobRowAdpt As New DCGDataSetTableAdapters.MainTableAdapter
    Dim delJobRow As DCGDataSet.MainRow
    Dim intDelete As Integer
    delJobRow = DCGDataSet.Main.FindByID(delJobID)
    delJobRow.Delete()