ADO.NET对数据库的访问

ADO.NET的五大基本对象:

1.Connection对象

2.Command对象

3.DataAdapter对象

4.DataSet对象

5.DataReader对象


ADO.NET对数据库的访问(以SQL Server为例)

首先定义一下  connectionstring为所需要的连接字符串

1.断开式数据库访问连接

断开式数据库连接:客户端从数据源获取数据,断开与数据源的连接,所有的操作都是针对本地缓存里的数据,当需要从数据源获取新数据或者是回传处理后数据,则需要重新连接数据源。

代码:

SqlConnnect sqlconnection = new SqlConnection(connectionstring);
SqlDataAdapter sqldataadapter new SqlDataAdapter("select * from tablename",sqlconnection);//不需要Open方法,加入sqlconnection.Open后,就不会自动断线了
DataSet dataset = new DataSet();
sqldataadapter.Fill(dataset,"tablename");

2.连接式数据库访问连接

连接式数据库访问连接就是客户端从数据源获取数据后,通过DataReader对象,一条一条从从数据源访问到的数据读取到客户端,这个过程要一只保持连线状态。

代码:

SqlConnection sqlconnection = new SqlConnection(connectionstring);
sqlconnection.Open();//打开数据库
SqlCommand cmd = sqlconnection.CreateCommand();
cmd.CommandText = "select * from tablename";
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
    .......
}
sqlconnection.Close();//如果执行Close方法,则数据库会一直处于开启的状态


3.SqlConnection对象

SqlConnection构造函数

SqlConnection();

SqlConnnection(string);

实例化:

SqlConnection sql = new Sqlconnection();

Sql.ConnectionString=connectionstring;

sql.Open();

或者

SqlConnection sql = new Sqlconnection(connectionstring);

sql.Open();

在每次访问后记得用Close()关闭数据库连接

常用的方法:

Open                        使用 ConnectionString 所指定的属性设置打开数据库连接

CreateCommand       创建并返回一个与 SqlConnection 关联的 SqlCommand 对象。

Close                        关闭与数据库的连接。 此方法是关闭任何已打开连接的首选方法。

BeginTransaction       开始数据库事务。重载

查看msdn了解更详细 http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx

4.SqlCommand对象

数据库建立好后要操作数据库就需要想数据库发送SQL指令那么此时就需要用SqlCommand对象。

构造函数:

SqlCommand()                                 初始化SqlCommand对象 

SqlCommand(string)                         用查询语句初始化Commad对象

SqlCommand(string , Connection)      初始化具有查询文本及其Connection对象

SqlCommand对象常用的属性:

CommandText              获取或设置查询文本

Connection                   获取或设置Connection对象

CommandType              获取或设置命令类型

Transaction                   获取或设置将在其中执行 SqlCommand 的 SqlTransaction。

SqlCommand对象常用方法:

方法                               说明

ExecuteNonQuery           对连接执行 Transact-SQL 语句并返回受影响的行数,适合对一些不需要返回结果的SQL如,insert,updata,create table ....

ExecuteReader                将 CommandText 发送到 Connection 并生成一个 SqlDataReader。

ExecuteScalar                 执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。    

5.数据库事务(SqlTransaction)

在一个销售系统中,当客户端销售部卖出了库存商品,就相应去数据库中更新已卖出去的商品后剩下的数量,避免出现错误,商品已经销售出去,但是数据库还没有及时的更新。

致使他人在读取数据库出现错误。

事务就是一系列操作,要么全部做完,要么全部不做,是不可分割的单元


事务处理

调用SqlConnection.BeginTransaction返回SqlTransaction对象,SqlTransaction对象对事务的处理为下面三个:

  • Begin               在开始事务处理中的任何操作前,必须使用Begin命令来开始事务处理
  • Commit            所有修改成功存储与数据库,才算是提交事务
  • Rollback            事务回滚,当事务处理期间出现错误,取消之前事务已处理的所有修改,发生事务回滚

代码:

            SqlConnection sql =new SqlConnection(connectionstring);
            sql.Open();
            SqlTransaction st = sql.BeginTransaction("SQL事务");//指派Transaction,并指定事务名称
            SqlCommand cmd = sql.CreateCommand();
            cmd.Transaction = st;//指派Transaction对象给SqlCommand
            try//事务的开始
            {
                cmd.CommandText = textBox6.Text;
                textBox1.Text += "执行事务受影响的行数:\r\n" + cmd.ExecuteNonQuery() + " \r\n";//返回受影响的行数
                cmd.CommandText = textBox7.Text;
                textBox1.Text += cmd.ExecuteNonQuery() + "\r\n";
                cmd.CommandText = textBox8.Text;
                textBox1.Text += cmd.ExecuteNonQuery() + "\r\n";
                st.Commit();//提交事务,事务结束
            }
            catch (Exception ex)
            {
                MessageBox.Show("错误:"+ex.ToString(),"警告",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
                st.Rollback("SQL事务");//事务回滚
            }
            st.Dispose();
            sql.Close();
            cmd.Dispose();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值