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



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