a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > Access > 正文

第三部分,BETA2操作ACCESS數(shù)據(jù)庫

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

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

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.    建立數(shù)據(jù)庫連接(我是通過自己的函數(shù),在前面的文章中有代碼)
2.    實(shí)例化oledbdataadapter對象!
3.    建立一個dataset對象,執(zhí)行sql語句得到的表添加到其中
4.    關(guān)閉數(shù)據(jù)庫連接
通過上面的步驟我們就可以使用databind將我們得到的數(shù)據(jù)綁定到特定的控件上了!


下面我們看看,如何通過oledbdataadapter來執(zhí)行刪除特定的數(shù)據(jù)庫記錄!(delete)

由于執(zhí)行刪除、修改、添加都比前面的麻煩,所以我們還是先看例程,然后自己體會一下,程序如下:

//刪除特定記錄,通過string類型的id刪除字段
public boolean delnote(string delid)
{
boolean tempvalue=false;
       //連接數(shù)據(jù)庫
       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()實(shí)例
              mydataadapter.fill(ds,"notes");
        
        //下面的可以簡化,由于我開始是選擇了所有的記錄,所以就用的是集合方式
              foreach(datarow dr in ds.tables["notes"].rows)
              {                
                    if(dr["id"].tostring().equals(delid))
                    {
                        dr.delete();
                    }
                  }
              mydataadapter.update(ds,"notes");
                        
            
              //假如執(zhí)行成功,則,返回true,否則,返回false
              conn.close();
           tempvalue=true;
           return(tempvalue);
       }
       catch(exception e)
          {
               throw(new exception("數(shù)據(jù)庫刪除出錯:" + e.message)) ;
       }
}


這個程序和我們前面用到的刪除例程是執(zhí)行同樣的功能的,我這里改成了用mydataadapter來達(dá)到同樣的效果!

要通過mydataadapter執(zhí)行delete操作,我們要有下面的幾步:

1.    建立數(shù)據(jù)庫連接(通過:oledbconnection conn = getconn();)
2.    實(shí)例化oledbdataadapter對象!此處并沒有用delete語句,而是先用select語句把要刪除的記錄取得
3.    建立一個dataset對象,并把執(zhí)行select語句得到的記錄添加到其中
4.    建立oledbcommandbuilder對象! 并讓它與我們前面的oledbdataadapter對象關(guān)聯(lián)!語句如下:oledbcommandbuilder mybuilder = new oledbcommandbuilder(mydataadapter);
5.    刪除dataset中包含表的特定記錄

6.    執(zhí)行oledbdataadapter對象的update命令更新數(shù)據(jù)庫,語句如下: mydataadapter.update(ds,"notes");
7.    關(guān)閉數(shù)據(jù)庫連接


上面步驟中的第4步,我們建立了一個oledbcommandbuilder對象,注意是必須的!!!我們將它和oledbdataadapter關(guān)聯(lián)起來,監(jiān)視rowupdating事件的發(fā)生!在我們刪除了指定的記錄后,要通過執(zhí)行oledbdataadapter對象的update命令來更新數(shù)據(jù)庫!

其實(shí),上面的結(jié)構(gòu)不僅適合與delete操作,同樣適合insert、update操作的,只要我們把上面的第5步改成相應(yīng)的操作語句就可以的!

備注:
在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;

不過不幸的是,這個方法我用了各種方法測試了多次都沒有成功,總是提示錯誤,最后我得到的結(jié)論是:ms的幫助又有個地方錯了,簡直了,都不知道怎么回事!如果哪為朋友通過這樣的方式做成功了,也希望能告訴一下,我反正是測了一個晚上也沒有找到正確的方法!

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

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

最大的網(wǎng)站源碼資源下載站,

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲国产精品人人爽夜夜爽 | 亚洲欧美精品 | 欧美影院一区二区三区 | 久久久久久综合 | 一区二区三区精品视频 | 精品 99| 91精品国产综合久久久久久 | 日韩精品一二三区 | 午夜精品一区 | 日韩在线精品视频 | 99色影院| 久久久久久久久综合 | 久久国产香蕉视频 | 国产精品九九九 | 亚洲h视频 | 成人精品网站在线观看 | 亚洲一二三区影视 | 欧美精品久久久久久久亚洲调教 | 性色浪潮 | 夜夜爽99久久国产综合精品女不卡 | 91av在线免费看 | 亚洲国产高清高潮精品美女 | 亚洲国产精品一区二区第一页 | 91精品国产一区二区三区 | 日韩一区不卡 | 看黄色.com | 狠狠av| 成人欧美一区二区三区白人 | 午夜精品视频在线观看 | 成年人av网站 | 天天看天天摸天天操 | 国产欧美一区二区精品性色 | 亚洲成人精品 | 看一级毛片视频 | 激情国产 | 欧美日韩视频 | 精品国产一区二区三区在线观看 | 日韩一区二区三区在线看 | 日韩二区三区 | 超碰在线看 | 国产极品91 |