如何复用现有代码在ListBox1中显示Departement表的Localite字段
如何复用现有代码在ListBox1中显示Departement表的Localite字段
你好!从你现有的代码来看,已经搭建好了完整的数据库连接和数据填充基础逻辑,我们只需要稍作调整就能实现你的需求。下面是修改后的代码和详细说明:
修改后的Form1_Load事件代码
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 复用已有的数据库连接逻辑 Database_Connection() ' 1. 替换查询语句:针对Departement表获取Localite字段,按需可添加排序规则 InfoCommand = New SqlCommand("SELECT Localite FROM Departement ORDER BY Localite", Con) ' 2. 复用现有DataAdapter和DataTable的填充逻辑 InfoAdapter = New SqlDataAdapter() InfoAdapter.SelectCommand = InfoCommand InfoTable = New DataTable() InfoAdapter.Fill(InfoTable) ' 3. 将数据绑定到ListBox1 ListBox1.DataSource = InfoTable ListBox1.DisplayMember = "Localite" ' 如果仍需要保留DataGridView1的原有功能,可保留以下代码,否则注释或删除即可 ' InfoCommand = New SqlCommand("SELECT * FROM Customers ORDER BY Prenom", Con) ' InfoAdapter.SelectCommand = InfoCommand ' InfoAdapter.Fill(InfoTable) ' DataGridView1.DataSource = InfoTable End Sub
关键修改点说明
- 复用数据库连接:你已经实现的
Database_Connection()方法可以直接复用,确保数据库连接正常建立。 - 调整查询语句:把原有的
SELECT * FROM Customers替换为SELECT Localite FROM Departement,添加ORDER BY Localite可以让列表内容按字段排序,更规整。 - 复用数据填充逻辑:DataAdapter和DataTable的初始化、填充代码是通用的,完全不需要重新编写一套,直接复用即可。
- 绑定ListBox1:通过设置
DataSource为填充好的DataTable,再指定DisplayMember为Localite字段,就能让ListBox精准显示目标字段的内容。
额外优化建议
为了避免数据库资源泄漏,建议使用Using语句自动释放资源,让代码更健壮:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Database_Connection() Using InfoCommand As New SqlCommand("SELECT Localite FROM Departement ORDER BY Localite", Con) Using InfoAdapter As New SqlDataAdapter(InfoCommand) Dim InfoTable As New DataTable() InfoAdapter.Fill(InfoTable) ListBox1.DataSource = InfoTable ListBox1.DisplayMember = "Localite" End Using End Using End Sub
Using语句会在代码块结束后自动释放SqlCommand和SqlDataAdapter占用的资源,不需要手动调用Dispose方法。
内容的提问来源于stack exchange,提问作者ABIDINE
相关产品推荐
相关产品推荐

