ADO.NET

为什么要学ADO.NET

之前我们所学只能在查询分析器里查看数据,操作数据,我们不能让普通用户去学sql,所以我们搭建一个界面(Web Winform)让用户方便的操作数据库中的数据

什么是ADO.NET

ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类用类操作文件一样, System.Data.这组类是用来操作数据库(不光是MSSql Server),它提供了统一的编程接口让操作其它数据库(AccessOracle)的方式和操作MSSql Server一致

数据提供程序

Connection      //连接对象

Command         //执行命令

            executeNonQuery //执行增删改

            executeScalar   //执行查询返回首行首列

            executeReader   //执行查询返回只读只进的结果集datareader

DataReader

            hasRow      //是否有行

            fieldCount      //字段的个数

            read() 

            dr["列名"]  //返回object

            dr.GetString(序号)

            close()

DataAdapter     //卡车与数据库的通道,架构在Command之上

DataSet        //卡车

 

ADO.NET功能结构

图6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一个对象Connection

读取Sql Server数据库使用

    创建SqlConnection对象

    获取连接字符串 指定要连哪台服务器上的、哪个实例的哪个数据库、用什么用户名密码等。

第二个对象Command

操作Sql Server数据库使用SqlCommand对象

SqlCommand表示向服务器提交的一个命令(SQL语句等) , CommandText属性为要执行的SQL语句,ExecuteNonQuery方法执行一个非查询语句(UpdateInsertDelete等)

常用的三个方法

ExecuteNonQuery()       执行对数据库的增删改,返回受影响的行数

ExecuteScalar()      执行查询,返回首行首列

ExecuteReader()     执行查询,返回DataReader对象

 

ExecuteScalar方法用于执行查询,并返回查询所返回的结果集中第一行的第一列,因为不能确定返回值的类型,所以返回值是object类型。

得到自动增长字段的主键值,在values关键词前加上output inserted.Id,其中Id为主键字段名。执行结果就试插入的主键值,用ExecuteScalar执行最方便。

cmd.CommandText =insert into class(cName,cDescription) output inserted.Id values(‘高三一班’,‘描述’);

int i = Convert.ToInt32(cmd.ExecuteScalar());

 

SqlDataReader reader = cmd.ExecuteReader();

HasRow属性返回是否有行

while (reader.Read())

{      Console.WriteLine(reader.GetString(1));

}

readerGetStringGetInt32等方法只接受整数参数,也就是序号,用GetOrdinal方法根据列名动态得到序号

更简单的方法reader[uUserName]

第三个对象DateReader

DataReader 必须独享一个Connection

第四个对象DataSet

DataSet dataset = new DataSet();

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

adapter.Fill(dataset);

第五个对象DataAdapter

SqlDataAdapterDataSet和数据库之间沟通的桥梁。数据集DataSet包含若干表DataTableDataTable包含若干行DataRowforeach (DataRow row in dataset.Tables[0].Rows) row["Name"]

posted on 2011-09-16 14:55  骷髅吹牛  阅读(159)  评论(0)    收藏  举报