Visual Studio 2019 连接 SQL Server 2016 LocalDB

目录

0 环境参数

SQL Server Local DB Instance

1 SQL Server 对象资源管理器

2 SqlLocalDB.exe 命令

3 Navicat 连接 SQL Server

4 Visual Studio 连接 SQL Server

5 Visual Studio 实体数据模型


0 环境参数

  • 集成开发环境:Microsoft Visual Studio Professional 2019, version 16.7.5
  • .NET 环境:Microsoft .NET Framework, version 4.8.03752
  • 数据库产品:Microsoft SQL Server 2016 LocalDB
  • 数据库连接工具:Navicat Premium Premium, versin 12.0.18 (64-bit) 1999-2017
Microsoft DataBase
数据库说明角色
Microsoft SQL Server微软的数据库服务,收费作为服务运行

Microsoft SQL Server Express

Microsoft SQL Server 的缩减版,
功能和性能做了限制,免费
作为服务运行

Microsoft SQL Server LocalDB

Microsoft SQL Server Express 版本的轻量级版,
取消了多用户管理和远程连接管理功能,免费
在“用户模式”下与应用程序一起运行

SQL Server LocalDB 是一种面向开发人员的 SQL Server Express 功能,向开发人员提供 SQL Server 数据库引擎 ,使其不必管理 Transact-SQL 的完整服务器实例即可撰写和测试 SQL Server 代码。最常用于开发人员开发和测试过程中,在开发人员的电脑中不必安装庞大的 Microsoft SQL Server。

安装 Visual Studio 2012 以及更高的版本时,可以配置同时安装相应版本的 LocalDB。

注:Visual Studio 2017 和 Visual Studio 2019 内置的均是 SQL Server 2016 Express LocalDB。

SQL Server Local DB Instance

一般而言,有两个 Local DB Instance, 主要位于以下目录(Snow-Angel是我的计算机名):

C:\Users\Snow-Angel\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\

数据库实例

连接字符串和数据库位置

MSSQLLocalDB

连接字符串

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

数据库位置

C:\Users\Snow-Angel\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB

ProjectsV13

连接字符串

Data Source=(localdb)\ProjectsV13;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

数据库位置

C:\Users\Snow-Angel\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ProjectsV13

C:\Users\Snow-Angel\AppData\Local\Microsoft\VisualStudio\SSDT

1 SQL Server 对象资源管理器

主要目的:打开 SQL Server 对象资源管理器,创建数据库、数据表,添加数据。

1.1 视图 菜单 -> SQL Server 对象资源管理器

1.2 右击 SQL Server -> 添加 SQL Server …

1.3 浏览 选项卡 -> 展开 本地 列表 -> 选中数据库实例,下方会自动填充配置信息 -> 连接

本文以 MSSQLLocalDB 为例。

1.4 在 SQL Server 对象资源管理器:右击 数据库 -> 添加新数据库 -> 数据库名称,这里以 dbo.hello 为例

1.5 在 SQL Server 对象资源管理器:右击 新建的数据库 dbo.hello 下的 -> 添加新表… -> 添加字段 -> 更新

示例:数据表名为 dbo.Book,有三个字段:ID, Name, Price。建表语句如下:

CREATE TABLE [dbo].[Book] (
    [ID]    INT            NOT NULL,
    [Name]  NVARCHAR (200) NULL,
    [Price] FLOAT (53)     NULL,
    PRIMARY KEY CLUSTERED ([ID] ASC)
);

 当出现如下弹框时,点 更新数据库 即可。

1.6 在 SQL Server 对象资源管理器:右击 新建的表 dbo.Book -> 查看数据 -> 添加数据

 这里,添加三行数据,也可以使用 SQL 语句插入数据:

INSERT INTO [dbo].[Book] ([ID], [Name], [Price]) VALUES (1, N'C# Language', 21.3)
INSERT INTO [dbo].[Book] ([ID], [Name], [Price]) VALUES (2, N'C++ Language', 99)
INSERT INTO [dbo].[Book] ([ID], [Name], [Price]) VALUES (3, N'Java Language', 33.3)

2 SqlLocalDB.exe 命令

主要目的:查看连接的数据库实例。

2.1 设置环境变量 SqlLocalDB.exe

SqlLocalDB.exe 一般位于如下目录:

C:\Program Files\Microsoft SQL Server\130\Tools\Binn

2.2 命令行测试 sqllocaldb,查看数据库实例和信息

1

C:\Users\Snow-Angel>sqllocaldb

Microsoft (R) SQL Server Express LocalDB 命令行工具

版本 13.0.1601.5

版权所有(C) Microsoft Corporation。保留所有权利。

用法: SqlLocalDB 操作 [parameters...]

操作:

  -?

    打印此信息

  create|c ["instance name" [version-number] [-s]]

    使用指定的名称和版本创建新的 LocalDB 实例

    如果忽略 [version-number] 参数,则它默认为

    系统中安装的最新 LocalDB 版本。

    -s 创建后启动新的 LocalDB 实例

  delete|d ["instance name"]

    删除具有指定名称的 LocalDB 实例

  start|s ["instance name"]

    启动具有指定名称的 LocalDB 实例

  stop|p ["instance name" [-i|-k]]

    当前查询完成后,停止具有指定

    名称的 LocalDB 实例

    -i 使用 NOWAIT 选项请求关闭 LocalDB 实例

    -k 在不与之联系的情况下终止 LocalDB 实例进程

  share|h ["owner SID or account"] "专用名称" "共享名称"

    使用指定的共享名称共享指定的专用实例。

    如果省略了用户 SID 或帐户名称,它将默认为当前用户。

  unshare|u ["shared name"]

    停止共享指定的共享 LocalDB 实例。

  info|i

    列出当前用户所拥有的所有现有 LocalDB 实例以及所有共享的 LocalDB 实例。

  info|i "实例名称"

    打印有关指定的 LocalDB 实例的信息。

  versions|v

    列出在计算机上安装的所有 LocalDB 版本。

  trace|t on|off

    打开或关闭跟踪

SqlLocalDB 将空格作为分隔符处理。需要用引号将

包含空格和特殊字符的实例名称引起来。

例如:

   SqlLocalDB create "My LocalDB Instance"

如上所述,有时可以省略实例名称,或者

将其指定为 ""。在这种情况下,引用的是默认的 LocalDB

实例 "MSSQLLocalDB"。

2

C:\Users\Snow-Angel>sqllocaldb info

MSSQLLocalDB

ProjectsV13

3

C:\Users\Snow-Angel>sqllocaldb info MSSQLLocalDB

名称:               MSSQLLocalDB

版本:            13.1.4001.0

共享名称:

所有者:              SNOW-ANGEL\Snow-Angel

自动创建:        是

状态:              正在运行

上次启动时间:    2022-1-1 20:00:19

实例管道名称: np:\\.\pipe\LOCALDB#3D47E0EA\tsql\query

3 Navicat 连接 SQL Server

主要目的:使用 Navicat 连接 SQL Server(这步也可跳过)。

使用此数据源:DataSource=(localdb)\MSSQLLocalDB

3.1 新建 SQL Server 连接:

文件 菜单 -> 新建连接 -> SQL Server...

连接名:自定义,这里为 MSSQLLocalDB

主机:使用实例管道名称,这里为 np:\\.\pipe\LOCALDB#3D47E0EA\tsql\query

验证:使用Windows验证

3.2 双击连接实例,可能会提示安装 Microsoft SQL Server Native Client,点击  即可。

 在 Client Components & SQL Server Native Client SDK 下拉列表中,均选择 Will be installed on local hard drive.

3.3 展开表,双击 Book 表,查看数据。

对于浮点数据,存储或显示可能会存在精度误差。

4 Visual Studio 连接 SQL Server

主要目的:使用 Visual Studio 连接 SQL Server。

4.1 打开 视图 菜单 -> 服务器资源管理器

4.2 在 服务器资源管理器:右击 数据连接 -> 添加连接…

4.3  在 添加连接 对话框:

服务器名:输入 (localdb)\MSSQLLocalDB

选择或输入数据库名称:dbo.hello

点击 测试连接 -> 没有问题则弹出对话框提示:测试连接成功。随后,点击 确定 即可。

连接成功会出现数据连接信息。默认格式推断:<用户名>\localdb#<id>.<数据库名>.dbo

示例:这里为 snow-angel\localdb#3d47e0ea.dbo.hello.dbo

5 Visual Studio 实体数据模型

主要目的:使用 Visual Studio 实体数据模型 操作数据

EF = Entity Framework 实体框架

5.1 项目 右键 -> 添加 -> 新建项…

5.2 在 添加新项 对话框:定位到 Visual C# 项 | 数据 -> 选中 ADO.NET 实体数据模型 -> 这里名称填为 Model -> 点击 添加

5.3 在 实体数据模型向导:选择 来自数据库的EF设计器 -> 点击 下一步

5.4 在 实体数据模型向导:自动会出现 数据库连接、连接设置 等信息 -> 可以直接点击 下一步

5.5 在 实体数据模型向导:勾选 表 dbo Book -> 模型命名空间 可以使用默认提供的,也可自定义 -> 确认无误,点击 完成

当弹出 安全警告 对话框时,点击 确定,或 勾选上 不再显示此消息 并 点击 确定

5.6 生成模型与文件结构

5.7 数据使用 LINQ

LINQ = .NET Language Integrated Query

using System;
using System.Collections.Generic;
using System.Linq;

namespace SQLServerLocalDB {
    class Program {
        static void Main(string[] args) {
            var dbContext = new Entities();
            int count = dbContext.Book.Count();
            Console.WriteLine(count);

            List<Book> list = dbContext.Book
                .Where(book => book.Name.Contains("C#")).ToList();
            foreach (var item in list) {
                Console.WriteLine($"{item.ID}, {item.Name}, {item.Price}");
            }
        }
    }
}

 输出结果:

3
1, C# Language, 21.3

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值