asp.net 之ADO.NET操縱數據庫
2006/2/7 21:27:00
ADO.NET提供了Connection來連接數據庫,同時也提供了Command對象來查詢數據庫。同Connection對象一樣,Command也有兩種:OleDbCommand和SqlCommand.其區別同Connection對象。
要操縱數據庫,必須先使用Connection來連接到數據庫,再創建一個Command來查詢。有幾種創建方式,例:
SqlCommand cmd;
string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
string strqry="select * from Categories";
SqlConnection con=new SqlConnection(strCon);
con.Open();
1cmd=con.CreateCommand(); //這里使用用Connection對象的CreateCommand方法來創建一個Command對象。
cmd.CommandText=strqry;
// SqlDataReader reader=cmd.ExecuteReader();
2 cmd=new SqlCommand(); //直接使用new 關鍵字來創建
cmd.CommandText=strqry;
cmd.Connection=con; //設置與數據庫的連接
3cmd=new SqlCommand(strqry,con); //直接在new的時候帶兩個參數來創建
執行方式:
(主要有這么幾種,cmd.ExecuteReader();cmd.ExecuteNonQuery();cmd.ExecuteScalar();cmd.ExecuteXmlReader();)
1,ExecuteReader();返回一個SqlDataReader對象或OleDbDataReader對象,這個看你的程序的需要去 做。可以通過這個對象來檢查查詢結果,它提供了“游水”式的執行方式,即從結果中讀取一行之后,移動到另一行,則前一行就無法再用。有一點要注意的是執行之后,要等到手動去調用Read()方法之后,DataReader對象才會移動到結果集的第一行,同時此方法也返回一個Bool值,表明下一行是否可用,返回True則可用,返回False則到達結果集末尾。
使用DataReader可以提高執行效率,有兩種方式可以提高代碼的性能:一種是基于序號的查找,一個是使用適當的Get方法來查找。因為查詢出來的結果一般都不會改變,除非再次改動查詢語句,因此可以通過定位列的位置來查找記錄。用這種方法有一個問題,就是可能知道一列的名稱而不知道其所在的位置,這個問題的解決方案是通過調用DataReader 對象的GetOrdinal()方法,此方法接收一個列名并返回此列名所在的列號。例:
int id=reader.GetOrdinal("CategoryName");
while(reader.Read())
{
Response.Write(reader[id]);
}
reader.Close();
至于第二種方式很直觀,例:
while(reader.Read())
{
Response.Write(reader.GetInt32(0).ToString()+" "+reader.GetString(1).ToString()+" <br>");
}
DataReader的GetInt32()和GetString()通過接收一個列號來返回一個列的值,這兩種是最常用的,其中 還有很多其它的類型。
(注:DataReader對象在調用Close()方法即關閉與數據庫的連接,如果在沒有關閉之前又重新打開第二個連接,則會產生一條異常信息)
2.,ExecuteNonQuery() 這個方法并不返回一個DataReader對象,而是返回一個int類型的值,即在執行之后在數據庫中所影響的行數。
例:
int affectrows=cmd.ExecuteNonQuery();
Response.Write(affectrows +" 條記錄受影響");
3,ExecuteScalar() 這個方法不接受任何參數,僅僅返回查詢結果集中的第一行第一列,而忽略了其它的行和列,而且返回的是一個object類型,在使用之前必須先將它強制轉換為所需類型。如果返回的僅僅是一個單獨的數據元,則可以使用此方法來提高代碼的性能。例:
string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
string strqry="select count(*) from Categories";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlCommand cmd=con.CreateC
下一頁
返回列表
返回首頁
主站蜘蛛池模板:
免费A级毛片无码免费视频首页|
国产精品乱码一区二区三区|
久久久精品人妻无码专区不卡|
欧美成a人片在线观看久|
免费能直接在线观看黄的视频
|
性按摩xxxx|
久久久精品波多野结衣|
欧美69式视频在线播放试看|
亚洲精品午夜在线观看|
精品久久久久香蕉网|
国产一级淫片免费播放|
黑巨人与欧美精品一区|
国产精品入口在线看麻豆|
99久久人妻精品免费二区|
少妇精品久久久一区二区三区|
久久久久久AV无码免费网站|
晓雪老师下面好紧好湿|
亚洲婷婷第一狠人综合精品|
特级毛片全部免费播放a一级|
午夜视频免费国产在线|
荡女淫春护土bd在线观看|
国产成人午夜高潮毛片|
ass亚洲**毛茸茸pics|
国产老师的丝袜在线看|
av无码免费永久在线观看|
尤物在线影院点击进入|
中文字幕日本一区|
日本免费精品一区二区三区|
九九久久国产精品免费热6|
欧美成人看片一区二区三区尤物
|
女人张开腿日出白浆视频|
中文字幕一区日韩在线视频|
日本理论片午午伦夜理片2021|
亚洲av丰满熟妇在线播放|
欧美巨大xxxx做受高清|
亚洲欧美国产一区二区三区|
淫444kkk|
亚洲视频在线免费播放|
男人把女人桶爽30分钟动态|
免费网站看v片在线成人国产系列|
精品福利一区二区三区免费视频
|