[C#]SQL Server Express LocalDb(SqlLocalDb)的一些体会

2019-05-24 20:20:19 浏览数 (1)

真觉得自己的知识面还是比较窄,在此之前,居然还不知道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中的其他已有数据库。

生成的连接字符串如下:

代码语言:javascript复制
Data Source=(LocalDb)MSSQLLocalDB;AttachDbFilename=C:UsersCNCDesktopMusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True

我们可以将mdf文件的路径改为相对路径:

代码语言:javascript复制
Data Source=(LocalDb)MSSQLLocalDB;AttachDbFilename=|DataDirectory|MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True

第三,编写程序对已有数据的读取

如下代码所示:

代码语言:javascript复制
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

0 人点赞