本文将介绍如何连接并存取 SQL Server 2012 Express LocalDB。
在上一篇笔者介绍如何利用 SqlLocalDB 公用程序来管理 LocalDB 的执行个体,本文将继续介绍如何在 LocalDB 的执行个体上建立数据库,以及您的应用程序如何和 LocalDB 做整合。
LocalDB 对于开发人员最大的好处就是方便使用,您不需要管理执行个体的各种设定(例如验证模式、通讯协定、服务启动账户等),就可以用【(localdb)执行个体名称】作为服务器名称,利用 SQL Server 2012? Management Studio(含 Express) 或 SQLCMD 公用程序来连接? LocalDB 的执行个体。
若您尝试使用 SQL Server 2008 R2(含) 以前的管理工具来连接至 LocalDB 执行个体,将看到如下图的错误消息。
因此,您可以到 Microsoft Download Center 下载 2012 版的 SQL Server Management Studio Express。以繁体中文版为例,32 位文件名称为【SQLManagementStudio_x86_CHT.exe】,64 位的文件名称则为【SQLManagementStudio_x64_CHT.exe】。安装完毕后如果你是使用 SSMS 2012 Express 连接 LocalDB 那就比较没有路径的问题,假设您使用的是 SQLCMD 公用程序,记得先切换到【C:Program FilesMicrosoft SQL Server110ToolsBinn】路径,在执行连接 LocalDB 的动作,以免因为默认路径的关系使用到 SQL Server 2012 之前版本的公用程序而无法连接 LocalDB 的执行个体。
接下来为了示范方便,笔者使用 SSMS 2012 Express 来示范,介绍在 LocalDB 中建立数据库的注意事项。
当您的电脑中有安装 SSMS 2012 以前的版本时,在您第一次开启 SSMS 2012 会出现如下图的对话方块,告诉您 SSMS 2012 要将您在 SSMS 2008 的使用者设定数据导入到 2012,您可以依照您的需求来选择是否导入。
接着于【连线到服务器】窗口中输入【(localdb)执行个体名称】,本文以 (localdb)LocalDB1 为示范。
点选【对象总管 > 执行个体 > 数据库 > 新增数据库】来开启新增数据库窗口。
LocalDB 在建立数据库时,默认数据库文件路径是空白的。
若您输入完数据库名称直接按确定,会看到如下图的错误消息。
因此记得在输入完数据库名称后,指定数据库文件和事务记录档的路径,才可以顺利建立数据库。
接着输入下列的 T-SQL 叙述来建立数据表及测试数据:
1: IF OBJECT_ID(‘tb1‘) IS NOT NULL
2: DROP TABLE tb1
3: GO
4: ?
5: CREATE TABLE tb1
6: (
7: c1 int primary key,
8: c2 varchar(10)
9: )
10: GO
11: ?
12: INSERT INTO tb1 VALUES
13: (1,‘user1‘),
14: (2,‘user2‘),
15: (3,‘user3‘)
16: ?
17: GO
18: ?
19: SELECT *
20: FROM tb1
21: ?
22: GO
执行结果如下:
最后示范如何利用 Console 应用程序来存取 LocalDB 中的数据,程序如下,
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: using System.Data;
6: using System.Data.SqlClient;
7: ?
8: namespace Demo
9: {
10: class Program
11: {
12: static void Main(string[] args)
13: {
14: SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
15: scsb.DataSource = @"(localdb)LocalDB1";
16: scsb.InitialCatalog = "DB1";
17: scsb.IntegratedSecurity = true;
18: scsb.AttachDBFilename = @"C:MSSQLDB1.mdf";
19: using (SqlConnection con = new SqlConnection(scsb.ToString()))
20: {
21: using (SqlCommand cmd = new SqlCommand("select count(*) from tb1", con))
22: {
23: if (con.State != ConnectionState.Open) con.Open();
24: Console.WriteLine(cmd.ExecuteScalar().ToString());
25: }
26: }
27: Console.ReadLine();
28: }
29: }
30: }
其中上述程序的第 18 列,使用 AttachDBFilename 属性来进行数据库附加的动作,这是选用的选项。
【参考数据】
- SQL Server Management Studio Express
原文:大专栏 如何连接并存取 SQL Server 2012 Express LocalDB
原文地址:https://www.cnblogs.com/chinatrump/p/11496675.html