这应该不是这么难......但现在已经很晚了。
我正在处理一个简单的表单,并尝试在使用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以删除记录。我错过了什么?
答案 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()