1. 程式人生 > >[C#]SQL Server Express LocalDb(SqlLocalDb)的一些體會

[C#]SQL Server Express LocalDb(SqlLocalDb)的一些體會

con director cal zh-cn security href sof [] each

真覺得自己的知識面還是比較窄,在此之前,居然還不知道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)

[C#]SQL Server Express LocalDb(SqlLocalDb)的一些體會