筆者這幾天在做實踐周的項目,一個餐館點餐系統,需要使用到數據庫,遇到了很多的問題,百度了很久也沒什么頭緒。主要還是關於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從入門到精通視頻課程