1.ADO.Net提供了对sqlserver等数据源的一致访问,并且对通过oledb,xml公开的数据源访问。凡是中间语言符合xml语言标准的,都可以在.Net平台上对数据进行操作;提高了跨平台的适用能力。

2.DataSet是ADO.Net的核心部分,它可以被称为内存中的数据库。

3.ADO.Net为了实现与各类数据库的连接,ADO.Net设置了四个接口,以接口的形式与数据连接。这些接口为IDbConnection,IDbCommand,IDbDataAdapter,IDataReader.为了实现接口的连接,它抽象出了一下4个类:DbConnection,DbCommand,DbDataAdapter,DataReader来处理数据库或数据源,因此为实现不同的数据库操作,为不同的数据库或数据源提供了相应的连接类。以sqlserver数据库为例:SqlConnection,SqlCommand,SqlDataAdapter,SqlDataReader.

4.Connection对象,提供与数据源的连接等功能。

例:SqlConnection 继承与DbConnection。

Command 对象,可以执行对数据源的操作命令,如,读取,插入,更新,删除(可以执行sql语句或存储过程)。

DataReader对象,以只读的方式读取数据(以数据留的方式从数据库或数据源中读出数据)。

DataAdapter对象,是数据集合数据源之间的桥梁,用来填充数据集或数据表(DataTable)将数据加载到内存中。

DataSet对象,提供一种断开式的数据访问机制,是数据主流在内存中的一种表示形式;并且还可以对数据进行检索。

5.使用sqlserver中该类对象

(1)SqlConnecton对象继承与DbConnection,主要用于和数据库的连接。常用属性如下:

       ConnectionString          连接的字符串

       Database                     连接的数据库名称

       server                          服务器名称

      常用方法:

        open()           打开连接

        close()           关闭连接

    在使用SqlConnection时,首先需要实例化一个SqlConnection对象

      SqlConnection con=new SqlConnection(@"server=.\SQLEXPRESS;database=UserInf;uid=sa;pwd=;");

     con.open()//打开数据库

     con.close()//关闭数据库

(2)Sqlommand对象,执行对数据库的操作(执行sql语句或存储过程)

       常用属性:

           commandText                  执行的sql语句或存储过程

           CommandType                 指定CommandText值得形式(sql语句或者存储过程)

           CommandType.Text          执行sql语句(默认)

           CommandType.StoredProcedure        执行存储过程

           Connection                     与实例相关的SqlConnection实例

           Parameters                     参数集合,当前SqlCommand实例的擦书列表

          在是用SqlCommand时也要实例化。

         SqlCommand cmd=new SqlCommand(sql语句,con);或者借助Sqlconnection对象来实例化

         SqlCommand cmd =con.CreateCommand();

         cmd.CommandType=SqlDataSourceCommandType.Text;

         cmd.CommandText="sql语句";

     使用参数化的sql语句:

      string  sql="insert into User(userName,pwd) values(@userName,@pwd)";

      cmd.parameters.Add(new SqlParameter("@userName",username));

      cmd.Parameters.Add(new SqlParameter("@pwd",pwd));

      常用方法:

      ExcuteNonQuery()     执行sql语句或存储过程,并返回受影响的行数(为int类型)。

      Excutescalar()           执行sql语句或存储过程,并返回结果集中的首行首列。

      ExecuteReaer()         执行sql语句或者存储过程,并返回SqlDataReader对象。

(3)SqlDataReader对象,可以从数据源中读取或者检索数据读对象提供一种行前的,流行的。读取数据的形式,该对象在读取数据时必须保持与数据库的连接。

        特征如下:

        a.只读,不能执行删除,修改等操作。

        b.读取方式是向前的,不能再次访问已被访问的数据。

        c.直接把数据传递给页面中的对象,不能缓存在读取的数据。

        d.读取效率高(数据少时,推荐使用)

        e.读取完成之后调用close()方法关闭,SqlDataReader对象,否则会一直占用资源。

      常用属性:

          HasRows                 SqlDataReader 对象是否存在数行

          FieldCount               当前行中的列数(int)

          IsClosed                  列的值

      常用方法:

         close()                      关闭SqlDataReader对象

         Read()                      读取下一条记录

         IsDBNull(int)              指定列是否为数据库空值

         GetFieldType(int)        获取指定列的类型

         GetName(int)          获取指定列的名称

         GetOrdinal(列名)         获取指定列的序号

         GetString(int)            获取指定列的值

    注意:SqlDataReader不可以直接实例化,需要借助于SqlCommand对象实例化,产生一个向前读取的游标。

          SqlDataReader read=cmd.ExcuteReader();

          if(read.HasRow)

           {

                  while(read.Read())

                     {

                          read[字段名];//读取指定列中,指定字段名的值

                      }

 

           }

 

DataSet部分

 1.DataSet(using  System.data)可以看成内存中的数据库,可以实现断开式的数据库操作:

                  数据库                                               内存

                  database                                         DataSet

                  table                                               DataTable

                  Row                                                DataRow

                  Column                                           DataColumn

2.SqlDataAdapter 用于将数据库和DataSet连接起来。表示一组数据库命令和一个数据库连接,用来填充DataSet或DataTable。调用Fill()方法。

   例:SqlDataAdapter sdr=new SqlDataAdapter(SqlCommand)

         //  DataSet  ds=new DataSet();

        //   sdr.Fill(ds,"表名")

       //   DataTable dt=ds.Tables["表名"];

            DataTable dt=new DataTable();

             sdr.Fill(dt);

            foreach(DataRow dr in dt.Rows)

             {

                   dr[int column];//或者dr["字段名"]

             }

        

 

posted on 2013-06-07 12:53  零点HY  阅读(1587)  评论(0编辑  收藏  举报