我有点陷入困境。我想在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创建的数据绑定和数据源。但是,这不是我在这种情况下使用的。我的目标是使用列表框对象返回的数据。
双击事件用于允许用户进入和编辑模式。有关名称的数据应返回到文本框中,以便用户可以编辑数据并单击“保存”以保存更新的数据。
答案 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()
我必须在我的代码页面上多次这样做,但我现在正在尝试重构并直接得到一些东西。希望它有效。我希望这可以帮助其他可能需要这样做的人。