ASP.NET資料庫操作和資料顯示技術

來源:互聯網
上載者:User

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.NETManaged 提供者(用於在資料來源和資料集之間通訊的一組對象)的組成部分,用於在資料來源和資料集之間交換資料。
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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.