ASP.NET数据库操作和数据显示技术

ADO.NET的两个核心组件:.NET Framework数据提供程序和DataSet
数据提供程序包括:Connection对象、Command对象、DataReader对象和DataAdapter对象,用于连接数据源,执行SQL语句命令和检索数据,检索到的数据既可以直接处理也可以放入DataSet对象
DataSet包括DataTable对象集合和DataRelation对象
DataReader对象从数据源中读取仅能向前和只读的数据流
DataAdapter对象执行针对数据源的各种操作,包括更新、插入等

1.Connection对象
ADO.NET提供了四种连接方式:System.Data.OleDb.OleDbConnection、System.Data.SqlClient.SqlConnection、System.Data.Odbc.OdbcConnection、System.Data.OracleClient.OracleConnection,最常用SqlConnection
例如:
SqlConnection conn = new SqlConnection("server=localhost;uid=sa;pwd=123456;database=Product");
conn.Open();
conn.Close();
属性:
ConnectionString 连接字符串
Database 获取当前数据库或要使用的数据库名称
State 连接状态
DataSource 连接的SQL Server实例的名称
方法:
Open
Close
CreateCommand 创建并返回一个与该连接相关联的Command对象
BeginTransaction 开始创建数据库事务
ChangeDatabase 更改数据库

2.SqlCommand对象
String strSQL="";
SqlCommand cmd = new SqlCommand(strSQL, conn);
属性:
CommandText 设置或返回对数据源的命令串,表、存储过程、SQL语句等
CommandType 命令字符串的类型
state Command对象的状态
方法:
Cancel 取消异步Execute方法,如果Execute方法未指定adRunAsync参数则返回一个错误
Execute 执行
ExecuteReader:执行返回行的命令
ExecuteNonQuery:返回受影响的记录数
ExecuteReader:返回类型化的DataReader对象
ExecuteScalar:执行的SQL语句应返回一个结果,如记录个数,服务器时间等
ExecuteXmlReader:

3.DataReader对象
读取数据库的最简单方式,只能向前读取,不能写入,每次只有一行
使用方法:首先打开数据库、建立Command对象、执行SQL语句,用ExecuteReader方法返回一个DataReader对象
Access数据库:OledbDataReader myodr = cmd.ExecuteReader();
SQL Server: SqlDataReader myReader  = cmd.ExecuteReader();
属性:
IsClosed:状态
FieldCount:字段数目
Item:({name,ordinal})获取或设置字段内容,name为字段名,ordinal为字段序号
RecordsAffected:获取受影响行数
方法:
Close()
GetName(ordinal):取得第ordinal+1列的字段名称
GetValue(ordinal):取得ordinal+1列的内容
IsDBNull(orderianl):是否为空
Read():读取下一条数据,没有返回false
        String connStr = "server=AE5EC3E392D24E2\\SQLEXPRESS;database=教务管理系统;uid=tjt;pwd=123456";        
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        if (conn.State == ConnectionState.Open)
        {
            Response.Write("连接已经打开!");
        }
        String strSQL = "select * from Student";
        SqlCommand cmd = new SqlCommand(strSQL,conn);
        SqlDataReader myReader = cmd.ExecuteReader();
        Response.Write(myReader.FieldCount);
        while (myReader.Read())
        {
            Response.Write(myReader[0].ToString() +" "+ myReader[1].ToString() );
        }
        Response.Write("数据读取结束!");


4.DataAdapter和DataSet对象
DataAdapter数据适配器是ADO.NET托管提供程序(用于在数据源和数据集之间通信的一组对象)的组成部分,用于在数据源和数据集之间交换数据。
DataSet数据集是ADO.NET支持断开式数据访问的核心组件。,是数据库检索记录的临时缓存区。
DataAdapter对象可以建立并初始化数据表(DataTable),对数据源执行SQL指令,与DataSet对象结合,提供DataSet对象存取数据,可视为DataSet对象的操作核心,是DataSet对象与数据操作对象之间的沟通媒介。
工作流程:由Connection对象建立与数据源的连接,由Command对象操作SQL指令存取数据,存取的数据通过Connection对象返回给DataAdapter对象,然后DataAdapter对象将数据放入其产生的DataTable对象,最后将DataAdapter对象中的DataTable对象加入到DataSet对象中的DataTables对象中。
Access:OleDbDataAdapter myoda = new OleDbDataAdapter("SQL字符串",conn);
SQLServer:SqlDataAdapter mysda = SqlDataAdapter("SQL 字符串", conn);

属性:
DeleteCommand:获取或设置一个SQL语句或存储过程,以从数据源删除记录
InsertCommand:
SelectCommand:
UpdateCommand:
TableMapping:SqlDataAdapter用来将查询的结果映射到DataSet的信息集合中
方法:
Fill:执行存储于SelectCommand中的查询,并将结果存储在DataTable中
FillSchema:为存储在SelectCommand中的查询获取架构信息,各列名称和数据类型

DataSet类似于小型的关系数据库,包含一个或多个DataTable对象。
DataTable对象包含DataRow对象的集合、DataColumn对象的集合和Constraint对象的集合,分别存放行、列、约束的信息。
DataSet mydata = new DataSet();
属性:
HasErrors:是否包含错误
Tables:检查现有的DataTable对象
方法:
Clear:清空,比删掉重建快
Clone:克隆结构建立新的DataSet
Copy:复制结构和数据

        String connStr = "server=AE5EC3E392D24E2\\SQLEXPRESS;database=教务管理系统;uid=tjt;pwd=123456";        
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        if (conn.State == ConnectionState.Open)
        {
            String strSelectSQL = "select * from Student";
            SqlDataAdapter sda = new SqlDataAdapter(); //数据适配器
            sda.SelectCommand = new SqlCommand(strSelectSQL,conn); //获取数据
            DataSet ds = new DataSet(); //数据集
            sda.Fill(ds);   //填充数据集


            GridView1.DataSource = ds.Tables[0].DefaultView; //控件绑定
            GridView1.DataBind();
            conn.Close();
        }

5.DataTable对象
元数据和数据的集合,元数据通过DataColumn对象和Constraint对象的集合描述,数据则包含在DataRow对象的集合中。
Rows:获取属于该表的行的集合
Columns:属于该表的列的集合
PrimaryKey:指示主键
TableName:mingc 
方法:
ImportRow:添加具有相同架构的其他DataTable中的DataRow父辈
Select:返回根据提供的参数排序或筛选的DataRow对象的数组
Clear:清除DT数据
**********************************************
数据显示篇:
GridView控件:有自动套用格式、分页等功能。

GetXml:转换为XML



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章