VB.NET使用SQLDB将数据从ListBox返回到TextBox

时间:2018-01-15 16:44:18

标签: database vb.net winforms linq listbox

我有点陷入困境。我想在VB.NET winforms中创建的是一个列表框,其中包含一个名称列表,当用户双击一个名称时,它返回从DB中选择的名称和该名称的描述。

这是我到目前为止所做的,我有过许多不同的尝试,但几乎没有成功。

private Sub lstbxOfNames_DoubleClick(sender As Object, e As EventArgs) Handles lstboxOfName.DoubleClick
  Dim nameFromListBox As String = lstbxOfNames.GetItemText(lstbxOfNames.SelectedItem)
  Dim nameToTextBox as String
  txtNameDescription.Clear()
  txtName.Clear()

  With DBSet.NameTbl
    nameToTextBox = .FirstOrDefault(Function(x) x.Name = nameFromListBox).ToString()
  End With

  txtName.Text = nameToTextBox.ToString()
End Sub

这是我的代码的开始,至少从数据库返回Name。从某种意义上讲,这不是吹嘘我,但我没有得到可读的结果。我收到的结果是projectName.dbset.Nametbl + Nametbltyperow。

我不应该使用With声明吗?

我在这里错过了一个概念吗?

仅供参考我没有接口,抽象层,getter setter,我正在使用在设计视图中对数据源进行“自动”绑定时创建的绑定对象。 我是否需要创建所有接口,抽象层和getter setter,以便所有这些都正常工作?

***** EDIT ****** 我正在使用sql db。我所指的对象是当我将数据绑定设置到列表框对象时VS创建的数据绑定和数据源。但是,这不是我在这种情况下使用的。我的目标是使用列表框对象返回的数据。

双击事件用于允许用户进入和编辑模式。有关名称的数据应返回到文本框中,以便用户可以编辑数据并单击“保存”以保存更新的数据。

1 个答案:

答案 0 :(得分:0)

我已经想出如何解决这个问题。关于数据库混淆,我使用的是MS SQL Server。我希望这就是要求的。混淆来自通常当有人使用SQL DB时我认为它是MS SQL Server。但我发现的是vb.net中的列表框对象,winforms有一个从所选列表中检索数据的方法。

dim lstbx1 as listbox()
lstbx1.GetItemText(lstbx1.SelectedItem)

这将获得将用于查询的数据字符串。

我所做的是使用LINQ来访问数据库,但是因为我使用的是文本框,所以我必须创建几种不同类型的LINQ查询。如果有人知道更好的方式,请告诉我。

dim linqQuery = from query in DBobject.Table
                Where query.column = lstbx1.GetItemText(lstbx1.SelectedItem)
                Select query.Name
textbox.text = linqQuery.FirstOrDefault.ToString()

我必须在我的代码页面上多次这样做,但我现在正在尝试重构并直接得到一些东西。希望它有效。我希望这可以帮助其他可能需要这样做的人。