Intro
程序员使用编程语言
,将实际需要执行的数据读写操作
基于数据库系统
提前编写为各类用户可使用的软件。
免不了要在编程语言
与数据库
之间做对接(测试)。
本次测试使用C#
连接SQL Server
,并做查询测试,环境如下:
- 操作系统: Windows 10 pro
- 数据库系统: SQL Server 2008 R2 (SP2)
- IDE: Visual Studio Community 2019
- 编程语言:C#
- 依赖管理工具: NuGet
- 数据库连接依赖(library): System.Data.SqlClient 4.8.2
Operation
启动 Visual Studio
【创建新项目】
新建【控制台应用程序】(只是测试数据库连接,只用命令行就可以。当然也可以新建 .net mvc 项目)
输入要新建项目的项目名
选择【目标框架】
会生成默认的项目结构(见右侧解决方案查看器
),以及一个代码文件Program.cs
。
Run 运行方式:调试 - 开始执行(不调试)
Debug 调试方式:调试 - 开始调试
运行结果:
C# 连接 SQL Server 相关 API
就像JDBC一样,使用数据库连接信息(数据库服务器地址,用户名/密码)创建连接,准备请求对象,做读写操作,处理结果集。
因为只是为了测试连接字符串
的写法,以及数据库是否成功连接(通过一次查询动作可以确定),所以不做过多的封装(否则对第一次做连接测试的普通人来说反而过于晦涩),直接面向过程编程。
using System;
using System.Data;
using System.Data.SqlClient;
namespace SqlServerConnectDemo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("程序运行开始");
//string connStr = "Data Source=yujin-win10pro;Database = wyj;User Id = sa;Password = sa;";
//string connStr = "Server=localhost;Database=wyj;Trusted_Connection=True;";
string connStr = "Server=yujin-win10pro;Database=wyj;Trusted_Connection=True;";
string sql = "select id, name from wyj..tb_person";
SqlConnection conn = null;
try
{
conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
SqlCommandBuilder build = new SqlCommandBuilder(adapter);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
DataTable resultTable = dataSet.Tables[0];
Console.WriteLine("查询成功,即将遍历:" + resultTable);
foreach (DataRow row in resultTable.Rows)
{
foreach (DataColumn rowColumn in dataSet.Tables[0].Columns)
{
Console.Write(row[rowColumn].ToString() + "\t");
}
Console.WriteLine();
}
}
catch (Exception e)
{
Console.WriteLine("查询失败:" + e.Message);
}
finally
{
if (conn != null)
{
conn.Close();
}
}
Console.WriteLine("程序运行结束");
}
}
}
其中的using System.Data.SqlClient;
依赖以下类库: System.Data.SqlClient,
介绍页:https://www.nuget.org/packages/System.Data.SqlClient/4.8.2?_src=template
如果还没有配置好该依赖库(其实就是System.Data.SqlClient.dll
文件),会报错:
以上是没有配置依赖,且没有using System.Data.SqlClient;
的情况。
添加using System.Data.SqlClient;
后,报错如下:
【添加 System.Data.SqlClient.dll 依赖到本项目
】后:
如果对 使用 NuGet 下载依赖 的方法有疑问,
见:Visual Studio 中配置 依赖管理工具 NuGet 并搜索下载所需依赖 全流程截图
连接字符串的写法,各个字段的意义
本例中测试了三种写法,都可以成功执行。
string connStr = "Data Source=yujin-win10pro;Database = wyj;User Id = sa;Password= sa;";
//string connStr = "Server=localhost;Database=wyj;Trusted_Connection=True;";
//string connStr = "Server=yujin-win10pro;Database=wyj;Trusted_Connection=True;";
-
字段意义
Serever
: 表示要连接的SQL Server 服务端所在的机器(可以是ip, 可以是hostname),我的是在本地安装,所以localhost也可以用于定位。Database
: 数据库,别名User Id
: 用户名Password
: 密码
关于参数Server
,它有几个别名:Address, Addr, Data Source, Network Address
。
而Database
的别名:Initial Catalog
User Id
别名:UID
Password
的别名:PWD
至于 Trusted_Connection=True;
,在测试连接阶段,这个参数无关紧要。
其他的连接字符串参数见:
见 https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.connectionstring?view=dotnet-plat-ext-5.0
运行截图
- 数据库环境准备
首先,因为我测试的SQL为select * from wyj..tb_person;
,所以要确保数据库里有对应的库、表、几行测试数据。
脚本:
create database wyj;
use wyj;
go
create table tb_person (
id int,
name nvarchar(20)
);
insert into wyj..tb_person (id, name) values
(1, 'one'),
(2, 'two'),
(3, 'three'),
(4, 'four');
select * from wyj..tb_person;
- 项目概览
- 调试查看结果
Debug
鼠标移动至DataSet
类型的变量resultTable
上方,点击悬浮窗中的小放大镜,可以看到DataSet 可视化工具
。
或由代码便利返回的对象:
转载:https://blog.csdn.net/wuyujin1997/article/details/116570442