歸納總結(jié)ADO.NET對(duì)象
我們知道做程序就得訪問(wèn)數(shù)據(jù)庫(kù),在網(wǎng)上收集了大量的資料,現(xiàn)在和大家分享一下吧。ADO.NET是Microsoft數(shù)據(jù)庫(kù)訪問(wèn)的一種新技術(shù),它支持連接式訪問(wèn)和斷開式訪問(wèn)兩種方案。ADO.NET中定義了一套接口IDbConnection、IDbCommand、IDbDataAdapter和IDDataReader,并且還有顯示這些接口的抽象類:DbConnection、DbCommand、DbDataAdapter以及DataReader;不同的數(shù)據(jù)庫(kù)廠商實(shí)現(xiàn)這些接口的抽象類各不相同。
◆ADO.NET對(duì)象Connection:Connection對(duì)象有兩個(gè)屬性:ConnectionString 和 State;以及兩個(gè)重要方法:Open和close。
◆ADO.NET對(duì)象Command:Command對(duì)象有一個(gè)屬性:CommandType(sql語(yǔ)句或者存儲(chǔ)過(guò)程);三個(gè)重要方法:ExecuteNonQuery(增、刪、改影響的行數(shù))、ExecuteReader(返回DataReader對(duì)象類型)ExecuteScalar(返回結(jié)果集的***行***列值)
◆ADO.NET對(duì)象DataReader:DataReader對(duì)象不能直接實(shí)例化,必須通過(guò)Command對(duì)象中的一個(gè)方法來(lái)創(chuàng)建;DataReader有很多屬性,Read(是否還有下一條數(shù)據(jù)),讀取數(shù)據(jù)的屬性(三中方式)
◆ADO.NET對(duì)象DataAdapter:作用是充當(dāng)適配器;其中有一個(gè)重要方法Fill,這個(gè)方法可以在不打開數(shù)據(jù)庫(kù)連接的情況進(jìn)行數(shù)據(jù)操作
◆ADO.NET對(duì)象DataSet:相當(dāng)于內(nèi)存中的一個(gè)數(shù)據(jù)庫(kù),使用DataAdapter對(duì)象填充DataSet或者DataTable
◆ADO.NET對(duì)象DataTable(DataColumn對(duì)象和DataRow對(duì)象):它有兩個(gè)屬性Columns和Rows;
參數(shù)化SQL語(yǔ)句:
Sql2005查詢方法:
- //實(shí)例化Connection對(duì)象
- SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa");
- //實(shí)例化Command對(duì)象
- SqlCommand command = new SqlCommand("select * from UserInfo where sex=@sex and age>@age", connection);
- //***種添加查詢參數(shù)的例子
- command.Parameters.AddWithValue("@sex", true);
- //第二種添加查詢參數(shù)的例子
- SqlParameter parameter = new SqlParameter("@age", SqlDbType.Int);//注意UserInfo表里age字段是int類型的
- parameter.Value = 30;
- command.Parameters.Add(parameter);//添加參數(shù)
- //實(shí)例化DataAdapter
- SqlDataAdapter adapter = new SqlDataAdapter(command);
- DataTable data = new DataTable();
占位符:
分頁(yè)查詢:首先計(jì)算出總行數(shù),其次算出多少頁(yè)
首先:
- int count = int.Parse(command.ExecuteScalar().ToString());
其次:
- page=(m%n)==0?(m/n):(m/n+1);
n為每頁(yè)顯示的行數(shù)
***:
- select top 5 * from UserInfo where UserId not in
- (select top (n-1)*5 UserID from UserInfo order by UserID asc)
- order by UserID asc
【編輯推薦】