C# BETA2中操作ACCESS資料庫(三) (轉)
BETA2中操作ACCESS(三)
第三節 透過OleDataAdapte來運算元據庫!
呵呵,朋友好啊!又天亮了,熬了一個晚上,現在頭腦已經不是很清楚了,不過還不想休息!接著說說我們的資料庫操作吧!前面我們已經說了如何運算元據庫,但幾乎全部是透過OleDbCommand和OleDbDataReader來做的,這次我們說說如何透過OleDbDataAdapter來運算元據庫!由於OleDbDataAdapter是DataSet和資料來源之間建立聯絡的一個橋樑,而DataSet我想大家都知道在中所佔的地位,所以知道如何透過它來運算元據庫就是必須的了!
好了,不廢話了!在前面我們已經用到過一次OleDbDataAdapter來“”語句,我門在回憶一次看看那段程式碼!(我適當簡化了)
OleDbConnection conn = getConn(); //getConn():得到連線
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from notes order by posttime desc",conn);
System.Data.DataSet mydataset = new System.Data.DataSet();; //定義DataSet
adapter.Fill(mydataset,"notes");
conn.Close();
整個過程分以下幾步:
1. 建立資料庫連線(我是透過自己的,在前面的文章中有程式碼)
2. 例項化OleDbDataAdapter物件!
3. 建立一個DataSet物件,執行語句得到的表新增到其中
4. 關閉資料庫連線
透過上面的步驟我們就可以使用DataBind將我們得到的資料繫結到特定的上了!
下面我們看看,如何透過OleDbDataAdapter來執行刪除特定的資料庫記錄!(DELETE)
由於執行刪除、修改、新增都比前面的麻煩,所以我們還是先看例程,然後自己體會一下,如下:
//刪除特定記錄,透過string型別的ID刪除欄位
public Boolean DelNote(string delid)
{
Boolean tempvalue=false;
//連線資料庫
try
{
OleDbConnection conn = getConn(); //getConn():得到連線物件
string selectstr = "select * from notes where id=" + delid;
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(selectstr,conn);
//建立OleDbCommandBuilder,必須!
OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter);
DataSet ds = new DataSet(); //建立DataSet()例項
myDataAdapter.Fill(ds,"notes");
//下面的可以簡化,由於我開始是選擇了所有的記錄,所以就用的是集合方式
foreach(DataRow dr in ds.Tables["notes"].Rows)
{
if(dr["id"].ToString().Equals(delid))
{
dr.Delete();
}
}
myDataAdapter.Update(ds,"notes");
//假如執行成功,則,返回TRUE,否則,返回FALSE
conn.Close();
tempvalue=true;
return(tempvalue);
}
catch(Exception e)
{
throw(new Exception("資料庫刪除出錯:" + e.Message)) ;
}
}
這個程式和我們前面用到的刪除例程是執行同樣的功能的,我這裡改成了用myDataAdapter來達到同樣的效果!
要透過myDataAdapter執行delete操作,我們要有下面的幾步:
1. 建立資料庫連線(透過:OleDbConnection conn = getConn();)
2. 例項化OleDbDataAdapter物件!此處並沒有用delete語句,而是先用select語句把要刪除的記錄取得
3. 建立一個DataSet物件,並把執行select語句得到的記錄新增到其中
4. 建立OleDbCommandBuilder物件! 並讓它與我們前面的OleDbDataAdapter物件關聯!語句如下:OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter);
5. 刪除DataSet中包含表的特定記錄
6. 執行OleDbDataAdapter物件的Update命令資料庫,語句如下: myDataAdapter.Update(ds,"notes");
7. 關閉資料庫連線
上面步驟中的第4步,我們建立了一個OleDbCommandBuilder物件,注意是必須的!!!我們將它和OleDbDataAdapter關聯起來,監視RowUpdating事件的發生!在我們刪除了指定的記錄後,要透過執行OleDbDataAdapter物件的Update命令來更新資料庫!
其實,上面的結構不僅適合與delete操作,同樣適合insert、update操作的,只要我們把上面的第5步改成相應的操作語句就可以的!
備註:
在ms自帶的幫助中,它是使用下面的方式:
string mySelectText = "SELECT * FROM Categories ORDER BY CategoryID";
string mySelectConn = "Provr=.Jet.OLEDB.4.0;Data =NWIND_RW.MDB";
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySelectText,mySelectConn);
myDataAdapter.DeleteCommand.CommandText="DELETE FROM Categories WHERE CategoryName='Produce'";
myDataAdapter.DeleteCommand.Connection = myDataAdapter.SelectCommand.Connection;
不過不幸的是,這個方法我用了各種方法測試了多次都沒有成功,總是提示錯誤,最後我得到的結論是:MS的幫助又有個地方錯了,簡直了,都不知道怎麼回事!如果哪為朋友透過這樣的方式做成功了,也希望能告訴一下,我反正是測了一個晚上也沒有找到正確的方法!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991225/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# BETA2中操作ACCESS資料庫 (轉)C#資料庫
- C# BETA2中操作ACCESS資料庫(二) (轉)C#資料庫
- C# 操作 access 資料庫C#資料庫
- C#的Access資料庫操作 AccessHelper類C#資料庫
- ACCESS資料庫C#操作類(包含事務)資料庫C#
- 不用JDBC:ODBC bridge直接操作Access 資料庫 (轉)JDBC資料庫
- 轉發:C#操作SQL Server資料庫C#SQLServer資料庫
- 【Rosion L.X】ASP.NET[C#]的ACCESS資料庫操作類ROSASP.NETC#資料庫
- 直接通過ADO操作Access資料庫資料庫
- 用ASP.NET/C#連線Access和SQL Server資料庫 (轉)ASP.NETC#SQLServer資料庫
- 使用C#語言操作ADO資料庫 (轉)C#資料庫
- 在ASP中壓縮ACCESS資料庫資料庫
- ACCESS資料庫防止下載大盤點 (轉)資料庫
- c#資料操作:資料庫訪問 和 檔案操作C#資料庫
- 連線資料之遠端呼叫Access資料庫(轉)資料庫
- mysql資料庫基本操作(三)MySql資料庫
- ABAP資料庫操作(轉)資料庫
- C#:資料庫SQL操作通用類C#資料庫SQL
- Access資料庫日常維護和Access資料庫最佳化方法資料庫
- [資料庫連線字串] Access 連線字串(轉)資料庫字串
- [資料庫連線字串]Access連線字串(轉)資料庫字串
- 在C、JAVA、PHP中操作postgreSql資料庫 (轉)JavaPHPSQL資料庫
- ASP.NET中防止Access資料庫下載ASP.NET資料庫
- 把ACCESS的資料匯入到Mysql中(轉)MySql
- 資料庫結構操作 (轉)資料庫
- 資料庫操作(1.0.0.1)(續) (轉)資料庫
- 把Access轉成SQL資料庫的方法介紹SQL資料庫
- SQL Server連線ACCESS資料庫的實現 (轉)SQLServer資料庫
- 無限級樹資料庫版(ASP+ACCESS) (轉)資料庫
- Access 匯入 oracle 資料庫Oracle資料庫
- PHP 連線access資料庫PHP資料庫
- java連線access資料庫Java資料庫
- C#操作Access的一些小結C#
- java語言操作Oracle資料庫中的CLOB資料型別 (轉)JavaOracle資料庫資料型別
- C#快速搭建模型資料庫SQLite操作C#模型資料庫SQLite
- C#/Python/MATLAB操作PostgreSQL資料庫C#PythonMatlabSQL資料庫
- Python操作三大主流資料庫Python資料庫
- Oracle,SqlServer,Access資料庫通用訪問類設計(轉)OracleSQLServer資料庫