C# ADO.NET

一、Connection 连接对象

        1. SqlConnection 类

// 数据库连接语句
string connStr = "server=.;database=db_Sys;uid=sa;pwd=123";
// 建立数据库连接
SqlConnection conn = new SqlConnection(connStr);
conn.Open();

        2. 配置App.Config文件,设置连接语句

<connectionStrings>
    <add name="LocalStr" connectionString="server=.;database=db_Sys;uid=sa;pwd=123"/>
<connectionStrings/>


// 从配置文件中获取连接语句
string connStr = ConfigurationManager.connectionStrings["LocalStr"].connectionString;

        3. 连接语句添加设置

        超时时间:默认为15s,在连接语句后加timeout重新设置;

        连接池:默认开启,在连接语句后加pooling设置。

        4. 自动释放 using

// 当执行完毕后,自动释放连接资源
using(SqlConnection conn = new SqlConnection(connStr))
{
    conn.Open();
}

GC垃圾回收器:只能回收托管资源(.Net CLR 管理的资源),不能回收非托管资源;

using(){}:能释放非托管资源(实现了IDisposable接口)

二、 Command 命令对象

        1. SqlCommand类

// 创建命令对象
SqlCommand cmd = new SqlCommand(sql, conn);
// 返回受影响行数
cmd.ExecuteNoQuery();
// 返回第一行第一列数据
cmd.ExecuteScalor();

三、 SqlDataReader 数据读取

        1. SqlDataReader类

// 获取reader
SqlDataReader reader = cmd.ExecuteReader();

// Read()使SqlDataReader前进到下一条记录
while(reader.Read())
{
    //获取该列名: GetName(); 获取该列的值: GetValue();
}

        2. 连接模式 —— 保持连接;SqlDataReader读取行流的方式

四、 SqlDataAdapter 数据适配

        1.  中断模式 —— 获取数据后,中断连接

        2.  SqlDataAdapter类

// 建立数据适配器
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);

// 解决sql注入
SqlParameter[] paras = {};

adapter.SelectedCommand.Parameters.AddRanges(paras);

// 数据填充
DataTable dt = new DataTable();
adapter.Fill(dt);

五、事务,多次执行

 string connStr = ConfigurationManager.ConnectionStrings["LocalStr"].ConnectionString;
 SqlConnection conn = new SqlConnection(connStr);
 conn.Open();

 var tran = conn.BeginTransaction(); // 开启事务
 try
 {
     string str = "delete from tb_Login where ID=@Id";
     SqlCommand cmd = new SqlCommand(str, conn, tran);
     SqlParameter para = new SqlParameter("@Id", SqlDbType.Int);

     int[] id = { 5, 6, 7, 8 };
     foreach (int i in id)
     {
         para.Value = i;
         cmd.Parameters.Add(para);
         cmd.ExecuteNonQuery();

         cmd.Parameters.Clear();
     }

     tran.Commit();   // 提交
 }
 catch (Exception)
 {
     tran.Rollback();  // 回滚
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值