【学习C#】连接SQL Server数据库

必要准备

想要连接数据库,首先得有数据库

  • windows 身份验证的
    在这里插入图片描述
  • SQL Server 身份验证的(用户名为sa)
    在这里插入图片描述

连接过程

过程很简单,就像一个基本套路,大家用多了就记住了

  1. 创建连接字符串
  2. 创建连接对象Connection
  3. 把连接字符串赋给Connection对象
  4. 调用Connection的Open方法打开数据库

实现代码

首先引用System.Data.SqlClient

using System.Data.SqlClient;

使用SQL Server身份验证,这里数据库是BookManagement,用户名是sa,密码是123456

string connString = "Server=.;Database=BookManagement;User ID=sa;Password=123456";
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = connString;
sqlConnection.Open();

使用windows身份验证,这里数据库是BookManagement

string connString = "Data Source=.;Persist Security Info=false;Integrated Security=SSPI;database=BookManagement";
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = connString;
sqlConnection.Open();

第二步和第三步也可以使用一步代替,使用SqlConnection的另一个构造方法

SqlConnection sqlConnection = new SqlConnection(connString);

在调用Open方法时,通过会使用try-catch结构,并使用State判断连接状态

try
{
    sqlConnection.Open();
    if (sqlConnection.State == ConnectionState.Open)
    {
        //连接成功
    }
    else
    {
        //连接失败
    }
}
catch
{
    //连接异常
}

使用配置文件

在项目中找到App.config文件,双击打开
在这里插入图片描述
我们在其中加入几条语句,key代表名字,value是对应的值,我们给value赋为我们的连接字符串(这里我使用的是SQL Server身份验证方式对应的连接字符串)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <appSettings>
    <add key="ConnectionString" value="Server=.;Database=BookManagement;User ID=sa;Password=123456"/>
  </appSettings>
</configuration>

然后我们可以这样创建连接字符串,ConnectionString是我们之前设置的key

string connString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];

但是呢,编译器会有这样的警告(不影响使用)
在这里插入图片描述
所以我们换一种方式,首先看看引用里有没有System.Configuration。
在这里插入图片描述
没有的话,右击引用,添加引用,找到System.Configuration并打勾,确定即可。
在这里插入图片描述
使用下面的代码替代上面的代码就没有警告了。

string connString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];


感谢大家阅读,再见!

猜你喜欢

转载自blog.csdn.net/weixin_44611096/article/details/106397714