真覺得自己的知識面還是比較窄,在此之前,居然還不知道SqlLocalDb。 SqlLocalDb是啥?其實就是簡化SQL Server的本地資料庫,可以這樣子說,SQL Server既可以作為遠程,也可以做本地, 而SqlLocalDb只能作為本地使用。說的直接一點,SqlLocalDb就是一個輕量 ...
真覺得自己的知識面還是比較窄,在此之前,居然還不知道SqlLocalDb。
SqlLocalDb是啥?其實就是簡化SQL Server的本地資料庫,可以這樣子說,SQL Server既可以作為遠程,也可以做本地,
而SqlLocalDb只能作為本地使用。說的直接一點,SqlLocalDb就是一個輕量級的基於本地的T-SQL資料庫,全稱:SQL Server Express LocalDb。
好,廢話不多說。
第一,怎麼安裝這個SqlLocalDb?
1)如果安裝過Visual Studio 2015、2017,一般已經安裝到了電腦里。
這裡以Visual Studio 2017為例,在Visual Studio Installer中的單個組件頁面中,可以看到該組件已經被安裝(紅色框框部分):
2)或者到Visual Studio 2017安裝包安裝該組件:
64位:
32位:
3)到SQL Server下載中心下載SQL Server Express:https://download.microsoft.com/download/5/E/9/5E9B18CC-8FD5-467E-B5BF-BADE39C51F73/SQLServer2017-SSEI-Expr.exe
下載之後,打開該引用,並點擊“下載介質”:
在彈出的頁面中,選擇LocalDB(第三個),點擊下一步下載SqlLocalDB.msi
註:SQL Server 2016 Express LocalDB微軟已經不再提供,目前為最新的,也就是以上的2017版本。
4)百度網盤下載:https://pan.baidu.com/s/12uKJ7IEE_45P0chOI4b39w
根據系統類型安裝不同的SqlLocalDB。
第二、連接SqlLocalDB
1、打開Visual Studio 2017,依次點擊“視圖”(菜單欄)->“伺服器資源管理器”,將會打開“伺服器資源管理器”視窗:
2、右鍵點擊“數據連接”,在彈出的上下文菜單中選擇“添加連接”,在彈出的視窗中將“伺服器名”設置為(LocalDb)\MSSQLLocalDB,如下圖所示:
然後附加一個名稱為MusicDBContext.mdf的資料庫文件(文件可以自己定義)並點擊確定,此時,MusicDBContext.資料庫作為預設的資料庫,我們可以選擇SQLLocalDB中的其他已有資料庫。
生成的連接字元串如下:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=C:\Users\CNC\Desktop\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True
我們可以將mdf文件的路徑改為相對路徑:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True
第三,編寫程式對已有數據的讀取
如下代碼所示:
using System; using System.Data; using System.Data.SqlClient; using System.Linq; namespace ConsoleApp { class Program { static void Main(string[] args) { string connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MusicDBContext;Integrated Security=True"; SqlConnection connection = new SqlConnection(connectionString); SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Musics",connection); DataTable table = new DataTable(); adapter.Fill(table); var result = (from row in table.Rows.Cast<DataRow>() select new { ID = (int)row[0], Title = (string)row[1], ReleaseDate = (DateTime)row[2] }); result.ToList().ForEach(x => Console.WriteLine($"{x.ID},{x.Title},{x.ReleaseDate}")); } } }
運行結果如下:
註:MusicDBContext.mdf可以在百度網盤下載,地址:https://pan.baidu.com/s/1zgkPLcetTo-XMNEH3-8FoQ
第四、一些關於SqlLocalDB的參考資料
https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/sql-server-2016-express-localdb?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/2014/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/2014/tools/sqllocaldb-utility?view=sql-server-2017
https://technet.microsoft.com/zh-cn/hh510202(v=sql.105)