[ADO.NET] 命令對象 (Command)
若要執(zhí)行某個動作查詢,可先建立Command對象,并將他的Connection屬性設定為狀態(tài)已經(jīng)Open(或指定后再使用Open方法) 有三種方法可以執(zhí)行Command命令的查詢: 1. ExecuteNonQuery:用來執(zhí)行不返回結果集的命令,他會返回一個整數(shù)值,整數(shù)值即代表受到這個命令所執(zhí)行的列數(shù)。一般Insert、Delete、Update都是使用這個命令查詢方法。 2. ExecuteReader:用來產(chǎn)生DataReader對象。除了這個方式之外,沒有其他方法可以獲得DataReader對象喔! 3. ExecuteScalar:用來返回結果集里面的第一筆的數(shù)據(jù),忽略其他行列。適合用在返回聚合值或只會擷取單一數(shù)據(jù)的時候。取得數(shù)據(jù)后再轉為合宜的數(shù)據(jù)型態(tài)即可。 一. ExecuteNonQuery: 刪除Defect數(shù)據(jù)庫中的DefectReport數(shù)據(jù)表中SN字段的值為123的數(shù)據(jù)列。 1: OleDbConnection^ conn=gcnew OleDbConnection(); 2: conn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:defect.mdb"; 3:? 4: conn->Open(); 5: OleDbCommand^ cmd=conn->CreateCommand(); 6:? 7: cmd->CommandText="DELETE FROM DEFECTREPORT WHERE [SN]=123"; 8: cmd->ExecuteNonQuery(); 9:? 10: conn->Close();
二. ExecuteReader: 1: // conn的定義同上個Code Snippet 2: conn->Open(); 3:? 4: OleDbCommand^ cmd=conn->CreateCommand(); 5: cmd->CommandText="SELECT * FROM DEFECTREPORT"; 6:? 7: //設定選取DefectReport中所有的數(shù)據(jù) 8: OleDbDataReader^ reader=cmd->ExecuteReader(); 9:? 10: while(reader->read()) 11: { 12: //do something 13: } 14: //若未關閉時,再想開啟另個DataReader對象會導致錯誤 15: reader->Close(); 16: conn->Close();
三. ExecuteScalar:
返回聚合值: 1: // conn定義同上 2: conn->Open(); 3: OleDbCommand^ cmd=conn->CreateCommand(); 4: cmd->CommandText="SELECT COUNT(*) FROM DEFECTREPORT"; 5:? 6: int count=0; 7: // count會得到DefectReport數(shù)據(jù)表的數(shù)據(jù)列數(shù)量 8: count=cmd->ExecuteScalar(); 9: conn->Close();
以上。 就可以依照想取得的需求,決定要用哪個查詢方法啰!
沒試過,別說你不行!該努力就去努力,別過了再說后悔。 〈請多指教,新手上路〉 原文:大專欄 ?[ADO.NET] 命令對象 (Command) 來源:https://www./content-4-444051.html |
|