麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Access > 正文

第三部分,BETA2操作ACCESS數據庫

2024-09-07 19:04:56
字體:
來源:轉載
供稿:網友
第三節    通過oledbdataadapte來操作數據庫!
呵呵,朋友好啊!又天亮了,熬了一個晚上,現在頭腦已經不是很清楚了,不過還不想休息!接著說說我們的數據庫操作吧!前面我們已經說了如何操作數據庫,但幾乎全部是通過oledbcommand和oledbdatareader來做的,這次我們說說如何通過oledbdataadapter來操作數據庫!由于oledbdataadapter是dataset和數據源之間建立聯系的一個橋梁,而dataset我想大家都知道在ado.net中所占的地位,所以知道如何通過它來操作數據庫就是必須的了!

好了,不廢話了!在前面我們已經用到過一次oledbdataadapter來執行“select”語句,我門在回憶一次看看那段代碼!(我適當簡化了)

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對象,執行sql語句得到的表添加到其中
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 = "provider=microsoft.jet.oledb.4.0;data source=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的幫助又有個地方錯了,簡直了,都不知道怎么回事!如果哪為朋友通過這樣的方式做成功了,也希望能告訴一下,我反正是測了一個晚上也沒有找到正確的方法!

好了,這次就到這里了,以后,我再有什么體會還會補充!也希望朋友們同樣能把自己學習中的體會寫出來和大家一起分享!

呵呵,真該休息了,好困!

最大的網站源碼資源下載站,

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费a视频在线观看 | 99精品国产一区二区三区 | www亚洲 | 亚洲一区二区三区四区精品 | 黄色网址免费在线 | 国产成人精品网站 | 国产免费一级淫片 | 成人性生活视频在线观看 | 911色_911色sss主站色播 | 3xxx | 国产欧美一区二区三区免费看 | 茄子福利视频 | 狠狠干五月天 | av日韩在线免费观看 | 欧美精品激情在线 | 西川av在线一区二区三区 | 精品一区二区三区网站 | 日本黄色大片免费观看 | 欧美一级片一区 | 日本一区二区不卡在线观看 | 一级在线 | 激情宗合| 福利免费在线观看 | 末成年女av片一区二区 | 韩国十九禁高潮床戏在线观看 | 国产精品久久久久久久久久10秀 | 免费在线观看中文字幕 | 欧美日本免费一区二区三区 | 午夜激情视频免费 | 草草久| 最新午夜综合福利视频 | 日本中文字幕电影在线观看 | 成人福利在线播放 | 日韩.www | 亚洲影视在线 | 欧美一级免费高清 | 免费a级片视频 | 黄色国产在线观看 | 91精品国 | 久久久免费观看完整版 | 国产精品99久久久久久久 |