真觉得自己的知识面还是比较窄,在此之前,居然还不知道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