笔者这几天在做实践周的项目,一个餐馆点餐系统,需要使用到数据库,遇到了很多的问题,百度了很久也没什么头绪。主要还是关于VS自带的数据库操作的问题。这里我来总结一下吧。
首先需要说明的是笔者在装VS2013的时候是全选了所有组件安装的。所以默认会自动安装一个SQL Server Express LocalDB。
SQL Server Express LocalDB简介
首先来说一下这个SQL Server Express LocalDB吧,大家应该都知道Express版是一个精简版,而LocalDB呢是SQL Server Express的一种运行模式,比较适合在开发环境使用。所以被内置在VS2013中。
在下文中我们使用SSEL来代替SQL Server Express LocalDB。
在VS中使用SSEL
1.使用SSEL新建一个数据库
视图——打开SQL Server对象资源管理器
2.展开其中一个数据库实例——右键点击数据库,选择添加新数据库
3.给新建的Test数据库添加一个Users表
4.给新建的Users表添加内容
右键新建的表名,点击查看数据:
新建数据库实例
可以看到笔者是在已有的数据库实例上新建数据库的,那么怎样创建一个新的实例呢,笔者没有在VS中找到方法,所以下面会介绍SSEL的命令行工具SqlLocalDB.exe
这个工具默认在 C:\Program Files\Microsoft SQL Server\110\Tools\Binn(笔者是64为系统,如果是32位的话应该是在C:\Program Files(x86)下)。SqlLocalDB.exe不能直接运行,需要使用cmd打开。
下面是cmd命令:
1 |
C:\Users\Myl-Cloud> cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn |
2 |
3 |
C:\Program Files\Microsoft SQL Server\110\Tools\Binn>SqlLocalDB.exe |
下面是SqlLocalDB.exe运行后的提示信息。
1 |
Microsoft (R) SQL Server Express LocalDB 命令行工具 |
2 |
版本 11.0.2100.60 |
3 |
版权所有 (c) Microsoft Corporation。保留所有权利。 |
4 |
5 |
用法: SqlLocalDB 操作 [参数...] |
6 |
7 |
操作: |
8 |
9 |
-? |
10 |
打印此信息 |
11 |
12 |
create|c "实例名称" [版本号] [-s] |
13 |
使用指定的名称和版本创建新的 LocalDB 实例 |
14 |
如果忽略 [版本号] 参数,它默认为 |
15 |
SqlLocalDB 产品版本。 |
16 |
-s 创建后启动新的 LocalDB 实例 |
17 |
18 |
delete|d "实例名称" |
19 |
删除具有指定名称的 LocalDB 实例 |
20 |
21 |
start|s "实例名称" |
22 |
启动具有指定名称的 LocalDB 实例 |
23 |
24 |
stop|p "实例名称" [-i|-k] |
25 |
当前查询完成后,停止具有指定 |
26 |
名称的 LocalDB 实例 |
27 |
-i 使用 NOWAIT 选项请求关闭 LocalDB 实例 |
28 |
-k 在不与之联系的情况下终止 LocalDB 实例进程 |
29 |
30 |
share|h [ "所有者 SID 或帐户" ] "专用名称" "共享名称" |
31 |
使用指定的共享名称共享指定的专用实例。 |
32 |
如果省略了用户 SID 或帐户名称,它将默认为当前用户。 |
33 |
34 |
unshare|u "共享名称" |
35 |
停止共享指定的共享 LocalDB 实例。 |
36 |
37 |
info|i |
38 |
列出当前用户所拥有的所有现有 LocalDB 实例 |
39 |
以及所有共享的 LocalDB 实例。 |
40 |
41 |
info|i "实例名称" |
42 |
打印有关指定的 LocalDB 实例的信息。 |
43 |
44 |
versions| v |
45 |
列出在计算机上安装的所有 LocalDB 版本。 |
46 |
47 |
trace|t on|off |
48 |
打开或关闭跟踪 |
可以看到操作命令必须以 SqlLocalDB 开头。
下面演示新建数据库实例的命令
1 |
SqlLocalDB create newshili |
2 |
3 |
C:\Program Files\Microsoft SQL Server\110\Tools\Binn>SqlLocalDB create newshili |
4 |
已使用版本 11.0 创建 LocalDB 实例“newshili”。 |
其他命令类似,这里不多介绍了。
之前笔者一直不会用VS自带的这个LocalDB数据库,所以自己也下载了SQL Server Management Studio 2014进行安装,但是安装完成打开SQL Server Management Studio后,提示连接,在服务器名称——浏览更多,并没有在本地找到任何SQl服务。网上搜也没明白个所以然,我估计是因为VS在本机已经装了个LocalDB的数据库服务的原因,具体的也不清楚,微软的东西太庞大。出现在网上搜不到的问题也不奇怪。
那我这个Management Studio岂不是白装了?其实不然,我们可以用它来管理我们的LocalDB的数据库实例!!
上面的命令行工具里,使用查看实例详细信息的命令SqlLocalDB info ProjectsV12
把最下面的一行实例管道名称; 复制粘贴到SQL Server Management Studio的连接对话框的服务器名称中:
点击连接即可管理ProjectsV12实例了。
连接数据库:
连接数据库很简单吧,使用Ado.Net就行了,之前笔者一直想在WinApp里面连接SQL Server,事实证明这是不能实现的。所以不多说了,
想要连接这个LocalDB,先引入System.Data.SqlClient;命名空间(若提示找不到,那可能是你没有装ADO.NET Framework),废话不多说了,直接看代码,下面代码的实现的是将查询到的数据打印出来的功能
1 |
using System; |
2 |
using System.Collections.Generic; |
3 |
using System.Linq; |
4 |
using System.Text; |
5 |
using System.Threading.Tasks; |
6 |
using System.Data.SqlClient; |
7 |
8 |
namespace LocalDBConnectTest |
9 |
{ |
10 |
class Program |
11 |
{ |
12 |
static void Main( string [] args) |
13 |
{ |
14 |
//数据库连接字符串,注意这个写法(localdb)后面必须是两个斜杠,因为这中间有个转义的过程 |
15 |
//Initial Catalog=要连接的数据库名 |
16 |
//Intergrated Security=true 开启windows身份验证 |
17 |
string ConnectString = "Server=(localdb)\\ProjectsV12;Initial Catalog=mrestaurant;Integrated Security=true" ; |
18 |
SqlConnection con = null ; |
19 |
SqlCommand cmd = null ; |
20 |
SqlDataReader str = null ; |
21 |
try { |
22 |
con = new SqlConnection(ConnectString); //连接到数据库 |
23 |
cmd = con.CreateCommand(); |
24 |
cmd.CommandText = "select footName from dbo.footinfo" ; //T-SQL语句 |
25 |
con.Open(); //创建连接后需要用Open打开连接,结束后要关闭连接,及时释放资源 |
26 |
str = cmd.ExecuteReader(); |
27 |
while (str.Read()){ |
28 |
Console.WriteLine(str[0]); |
29 |
} |
30 |
} |
31 |
catch (Exception ms) |
32 |
{ |
33 |
Console.WriteLine(ms.Message); |
34 |
} |
35 |
finally |
36 |
{ |
37 |
str.Close(); |
38 |
cmd.Clone(); |
39 |
con.Close(); |
40 |
} |
41 |
|
42 |
} |
43 |
} |
44 |
} |
这里笔者提供一套ADO.Net 4的视频资料,感觉挺好的,分享给大家,也为了以后自己不用到处找资料吧 链接:http://pan.baidu.com/s/1jGvYQXo 密码:8jbd 完整版的资料可以到这里下载ADO.NET 4.0从入门到精通视频课程