VB中实现LocalDB表名展示至Listbox控件的语法及实现咨询
VB Winform + LocalDB 实现表名展示与建表功能
前置准备
首先在代码文件头部引入命名空间:
Imports System.Data.SqlClient
你的LocalDB连接字符串可以直接复用项目中已经配置的,通用格式参考:Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\你的数据库名称.mdf;Integrated Security=True
一、将数据库表名加载到ListBox控件
直接通过查询LocalDB的系统视图sys.tables获取所有用户创建的数据表,封装为公用方法方便后续调用:
Private Sub LoadTableNamesToListBox() ' 替换为你自己的连接字符串 Dim connStr As String = "你的LocalDB连接字符串" ' 只查询用户创建的普通表,过滤系统表 Dim querySql As String = "SELECT name FROM sys.tables WHERE type = 'U' ORDER BY name" ListBox1.Items.Clear() Using conn As New SqlConnection(connStr) conn.Open() Using cmd As New SqlCommand(querySql, conn) Using reader As SqlDataReader = cmd.ExecuteReader() While reader.Read() ' 把表名添加到ListBox ListBox1.Items.Add(reader("name").ToString()) End While End Using End Using End Using End Sub
你可以在窗体加载事件Form_Load中调用这个方法,启动程序就会自动加载所有表名。
二、创建数据表同时刷新ListBox
建表操作执行完成后,直接调用上面的LoadTableNamesToListBox方法刷新列表即可,建表示例代码如下:
Private Sub BtnCreateTable_Click(sender As Object, e As EventArgs) Handles BtnCreateTable.Click Dim connStr As String = "你的LocalDB连接字符串" ' 示例:创建名为Product的表,你可以替换为你自己的建表SQL Dim createSql As String = " CREATE TABLE Product( ID INT PRIMARY KEY IDENTITY(1,1), ProductName NVARCHAR(50) NOT NULL, Price DECIMAL(18,2) NOT NULL )" Try Using conn As New SqlConnection(connStr) conn.Open() Using cmd As New SqlCommand(createSql, conn) cmd.ExecuteNonQuery() End Using End Using MessageBox.Show("数据表创建成功") ' 刷新ListBox的表名列表 LoadTableNamesToListBox() Catch ex As Exception MessageBox.Show("创建失败:" & ex.Message) End Try End Sub
注意事项
- 所有数据库操作都用
Using语句包裹,会自动释放连接资源,无需手动调用Close()方法 - 如果你的项目已经用了DataSet或者EF框架,也可以直接遍历对应对象的表集合获取名称,上述原生ADO.NET方案适配所有场景
- 连接字符串中的
|DataDirectory|默认指向项目的App_Data目录,部署时会自动适配运行路径
内容的提问来源于stack exchange,提问作者Renz Reyes
相关产品推荐
相关产品推荐

