今天心血来潮,想试试用 * 连个数据库,折腾大半天,总算有点成果,赶紧记录下来,省得以后忘。
准备工作
我,电脑上早就装好 Visual Studio 2019,数据库用的是 SQL Server 2014,都是现成的。我还提前在 SQL Server 里建好一个数据库,名字就叫 TestDB ,里面随便搞张表,塞点数据,方便等下测试用。
连接数据库
打开 Visual Studio,新建一个 * 的 Windows 窗体应用程序项目。然后,重头戏来,怎么连数据库?
我在代码的最上面加这两行:
Imports *
Imports *
听说,这是要引用命名空间,反正照做就是。不加这两行,后面代码会报错,别问我怎么知道的……
我定义一个连接字符串 (ConnectionString),这玩意儿很重要,告诉程序要连哪个数据库,用户名密码是我的连接字符串长这样:
Dim connString As String = "Server=.\SQLEXPRESS;Database=TestDB;Integrated Security=True"
Server=.\SQLEXPRESS 这里,"." 代表本地服务器,SQLEXPRESS 是我的 SQL Server 实例名。如果你是用用户名密码登录的,就要写成 User Id=你的用户名;Password=你的密码 这种形式。
有连接字符串,就可以创建连接对象:
Dim conn As New SqlConnection(connString)
打开和关闭连接
连接对象创建好,接下来就要打开它:
用完之后,记得要关闭连接,释放资源:
我把打开和关闭连接的代码,分别放在窗体的 Load 事件和 FormClosing 事件里。这样,程序启动时就连上数据库,关闭时就断开连接。
执行 SQL 命令
光连上数据库还不行,还得能执行 SQL 语句,才能对数据进行操作。我这里就简单地写个查询语句,把表里的数据读出来,显示在 DataGridView 控件里。
我在窗体上拖一个 DataGridView 控件,名字就用默认的 DataGridView1。
然后,在连接打开之后,写这么一段代码:
Dim sql As String = "SELECT FROM 你的表名" ' 把“你的表名”替换成你实际的表名
Dim cmd As New SqlCommand(sql, conn)
Dim adapter As New SqlDataAdapter(cmd)
Dim table As New DataTable()
*(table)
* = table
这段代码的意思是:
- 定义一个 SQL 查询语句。
- 创建一个 SqlCommand 对象,把 SQL 语句和连接对象传进去。
- 创建一个 SqlDataAdapter 对象,用它来执行查询。
- 创建一个 DataTable 对象,用来存放查询结果。
- 用 SqlDataAdapter 的 Fill 方法,把查询结果填充到 DataTable 里。
- 把 DataTable 设置为 DataGridView 的数据源,这样就能显示出来。
运行程序,DataGridView 里果然显示出表里的数据,大功告成!
今天就先到这里,总算把 * 连接数据库的基本操作搞明白,以后再慢慢研究更复杂的功能。 过程是挺累人的,遇到很多很多的错误,一个一个百度才解决掉!不过还是挺爽的!