ADONET数据库操作对象

SqlConnection对象

SqlConnection简介

要建立ADO.NET与数据库的连接,需要使用SqlConnection对象来实现,该对象需要一个数据库连接字符串。

实例化SqlConnection

实例化SqlConnection对象时必须使用数据库连接字符串,才能与SQL Server服务器建立连接。
11.png
实例化SqlConnection对象有两种方法:

//new关键字实例化SqlConnection对象
SqlConnection sqlConn = new SqlConnection(connStr);//使用SqlConnection对象的ConnectionString属性指定数据库连接字符串
SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = connStr;

打开连接

实例化SqlConnection对象后,还需使用SqlConnection对象的同步方法Open()或异步方法OpenAsync()打开连接。

使用同步方法Open()打开数据库连接
//读取数据库连接字符串
string connstr = ConfigurationManager.ConnectionStrings["DotNetConDb"].ConnectionString;
//构造函数实例化SqlConnection
SqlConnection sqlConn = new SqlConnection();
//指定数据库连接字符串
sqlConn.ConnectionString = connstr;
//打开数据库连接
sqlConn.Open();
异步方法OpenAsync()打开数据库连接

在最新的ADO.NET中,提供了异步方法,之前操作数据库的方法,都提供了对应的异步版本。

//读取数据库连接字符串
string connstr = ConfigurationManager.ConnectionStrings["DotNetConDb"].ConnectionString;
//构造函数实例化SqlConnection
SqlConnection sqlConn = new SqlConnection();
//指定数据库连接字符串
sqlConn.ConnectionString = connstr;
//异步方法打开数据库连接
await sqlConn.OpenAsync();

Console.ReadKey();

关闭和释放

关闭连接

ADO.NET中的数据库打开连接在执行数据库操作之后,为了下一次的连接更安全,则要关闭连接或释放资源(同时会关闭连接)。数据库的连接是先打开再关闭。
数据库的关闭使用Close()同步方法或异步方法CloseAsync()异步方法。

//读取数据库连接字符串
string connstr = ConfigurationManager.ConnectionStrings["DotNetConDb"].ConnectionString;
//构造函数实例化SqlConnection
SqlConnection sqlConn = new SqlConnection();
//指定数据库连接字符串
sqlConn.ConnectionString = connstr;
//同步方法打开数据库连接
//sqlConn.Open();

//异步方法打开数据库连接
await sqlConn.OpenAsync();

//同步关闭连接
sqlConn.Close();
//异步关闭连接
await sqlConn.CloseAsync();
使用同步方法打开数据库连接,则也要使用同步方法关闭连接。若使用异步方法打开数据库连接,则也要使用异步方法关闭连接。
释放资源

如果使用了Dispose()同步方法或DisposeAsync()异步方法,除了做与Close()方法一样的功能之外,还会清空数据库连接字符串及与数据库相关的资源。

//同步释放资源
sqlConn.Dispose();
//异步释放资源
await sqlConn.CloseAsync();
Dispose()要比Close()释放的资源多,Dispose()方法释放资源之后,是不能再使用Open()打开连接的。

使用using释放资源

使用using语句可以指定一个范围(作用域),实例化的对象只在此范围内活动,一旦离开这个范围,则就会调用该对象的Dispose()方法来释放资源。

using(SqlConnection conn = new SqlConnection(connstr))
{
   
    //打开数据库连接
    await conn.OpenAsync();
}
using语句内部没有调用Dispose()方法,但是在执行完using语句后,Sqlconnection对象的State处于Closed状态,数据库连接字符串为空,表示执行了Dispose()方法释放了资源。

SqlCommadn对象

数据库连接之后,实例化SqlCommand对象,将T-SQL语句或存储过程挂接到SqlCommand对象上,用于执行数据库操作。

SqlCommand实例化

使用构造函数实例化

构造函数实例化SqlCommand对象,需要至少2个必须参数:

  • cmdText: 这是一个string类型的参数,用于指定命令文本,可以是T-sql语句,还可以是存储过程的名称。
  • connection: 这是一个SqlConnection类型的数据库连接对象,将指定的SQLServer数据库与要执行的T-sql或存储过程绑定在一起,此时,我们就知道需要在哪个数据库上执行什么操作。
//读取数据库连接字符串
string connstr = ConfigurationManager.ConnectionStrings["DotNetConDb"].ConnectionString;

using(SqlConnection conn = new SqlConnection(connstr))
{
   
    //打开数据库连接
    await conn.OpenAsync();
    //T-sql语句
    string sql = "select * from Student";
    //实例化SqlCommand对象(传入两个参数,第1个是T-sql语句,第2个参数是SqlConnection对象。
    SqlCommand sqlCommand = new SqlCommand(sql, conn);
}

使用属性实例化

使用空的SqlCommand()构造函数实例化SqlCommand对象,然后使用属性指定命令文本、类型和SqlConnection对象。

//读取数据库连接字符串
string connstr = ConfigurationManager.ConnectionStrings["DotNetConDb"].ConnectionString;
//使用属性实例化SqlCommand
using(SqlConnection conn = new SqlConnection(connstr))
{
   
    //打开数据库连接
    await conn.OpenAsync
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值