亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Access > 正文

貼篇文章,BETA2中ACCESS操作數據庫

2024-09-07 19:04:58
字體:
來源:轉載
供稿:網友
朋友們好,回家已經有10天了,總算是開始學。net了,直接的感覺就是ms的幫助太差了,好多錯誤在上面,害的我走了好多彎路,結果好多東西還沒有完全搞好,簡直了!
由于beta2和beta1比較,變化太大了,而現在無論是書還是網絡上的資料基本都還停留在beta1上,是朋友們在學習的時候遇到好多問題還無處可查,這里我把我的學習過程中遇到的一些問題和體會拿出來與大家分享,希望能給也在學習過程中的朋友有些幫助!

我估計,朋友們在學習。net的過程中,遇到的最多的問題就是在和數據庫打交道的過程中了!所以這次我準備就從在beta2中如何操作數據庫開始了,數據庫采用我們最常用的access數據庫(其實是學習最常用的,實際中我更喜歡sql數據庫的)

在beta2中,。net提供了以下的namespace:
system.data namespace
system.data.oledb  (和beta1中已經不同了,所以如果拿beta1中的程序到beta2中來運行肯定不可以的)

如果想講清楚這些東西,我不認為是我可以作到的,所以我想通過一些具體的程序來把我們對數據庫的最基本的操作(select、update、delete、insert等)演示一下,其他的還是需要朋友們在學習過程中來慢慢體會了!

要想操作一個數據庫,不論是那種操作,首先要做的肯定是打開數據庫,下面我們以access數據庫來做例子說明如何打開一個數據庫連接!在這里我們需要用到的是:system.data.oledb.oledbconnection類?。ㄈ绻僮鱯ql數據庫,我們最好使用system.data.sqlclient.sqlconnection類)

我先寫出我自己使用的程序:

using system.data
using system.data.oledb

public  oledbconnection getconn()
{
    string connstr="provider=microsoft.jet.oledb.4.0 ;data source=f://web//notesbook//class//leavenotes.mdb";
       oledbconnection tempconn= new oledbconnection(connstr);
       return(tempconn);
}

相信只要使用過ado的朋友應該都可以看懂的!我們先定義一個string類型的變量,其中存放了我們連接數據庫的連接字符串,然后在定義一個system.data.oledb.oledbconnection類型的對象并實例化,最后返回這個對象!需要說明一下的是,我并沒有把語句:tempconn.open();放到這個函數中,原因我我稍后在說明,這里只是先提醒一下!

通過上面的函數,我們就已經得到了類似于ado中的連接對象connection了!下面的就是具體操作數據庫了!

在具體講操作前,我認為有必要先認識一下下面的兩個類:
system.data.oledb.oledbdataadapter
system.data.oledb.oledbdatareader

system.data.oledb.oledbdataadapter:可以直接和dataset聯系,并操作數據源的,它的功能相對強大一些,因此也比較耗系統資源!
system.data.oledb.oledbdatareader:則有些類似于ado中的哪個只讀向前的記錄集,它最常用在只需要依次讀取并顯示數據的時候,相比system.data.oledb.oledbdataadapter來說,他耗用的系統資源要?。∑鋵崳琽ledbdatareader能實現的功能,oledbdataadapter都可以實現,不過從資源使用率的角度考慮我們應該盡量使用前者!但有些功能,卻是必須使用oledbdataadapter才可以實現的!


。select操作!
下面是我的自己在寫測試程序的時候用到了,先列出來看看oledbdatareader和oledbdataadapter是如何操作從數據庫中選擇記錄的:

//通過id得到當前留言詳細內容.通過string類型參數
public notebook getnotefromid(string noteid)
{   
notebook tempnote=new notebook();      //定義返回值
       
try
       {
               oledbconnection conn = getconn();     //getconn():得到連接對象
              string strcom = "select * from notes where id=" + noteid ;
              oledbcommand mycommand =new oledbcommand(strcom,conn);
              conn.open();
              oledbdatareader reader;         
              reader =mycommand.executereader() ;     //執行command并得到相應的datareader
              //下面把得到的值賦給tempnote對象
              if(reader.read())
              {
                   tempnote.id=(int)reader["id"];
                        tempnote.title=reader["title"].tostring();
                        tempnote.content=reader["content"].tostring();
                        tempnote.author=reader["author"].tostring();
                        tempnote.email=reader["email"].tostring();
                        tempnote.http=reader["http"].tostring();
                        tempnote.pic=reader["pic"].tostring();
                        tempnote.hits=(int)reader["hits"];
                        tempnote.posttime=(datetime)reader["posttime"];
                }
              else    //如沒有該記錄,則拋出一個錯誤!
              {
                        throw(new exception("當前沒有該記錄!"));
                  }
                
              reader.close();
conn.close();
}
catch(exception e)
       {
               //throw(new exception("數據庫出錯:" + e.message)) ;
           }
         return(tempnote);       //返回databook對象
}

上面的程序就是通過oledbdatareader來得到特定的記錄的!其中用到的語句我單獨寫到下面:
oledbconnection conn = getconn();     //getconn():得到連接對象
string strcom = "select * from notes where id=" + noteid ;    //sql語句
oledbcommand mycommand =new oledbcommand(strcom,conn);    //建立oledbcommand對象
conn.open();        //注意我在前面說的open語句在這里使用到了!
oledbdatareader reader;         
reader =mycommand.executereader() ;     //執行command并得到相應的結果

我在每句話后都加入了說明,其中oledbconnection conn = getconn();就是通過我前面提到的getconn函數來得到數據庫連接的,其他語句沒有什么好說的,都很簡單,就不多說了!


我再列一個通過oledbdataadapter來得到記錄的例程:
//getlist():得到當前需要的留言列表
public dataview getnotelist()
{   
dataview dataview;
       system.data.dataset mydataset;  //定義dataset
            
       try
       {               
               oledbconnection conn = getconn();     //getconn():得到連接對象
                  oledbdataadapter adapter = new oledbdataadapter();
              string sqlstr="select * from notes order by posttime desc";
              mydataset= new system.data.dataset();
              adapter.selectcommand = new oledbcommand(sqlstr, conn);
              adapter.fill(mydataset,"notes");    
              conn.close();
        }
       catch(exception e)
       {
               throw(new exception("數據庫出錯:" + e.message)) ;
           }  
           dataview = new dataview(mydataset.tables["notes"]);
return(dataview);
}


這個程序或許有些復雜,同樣的,我還是先把那些關鍵語句列出,并說明:

oledbconnection conn = getconn();     //通過函數getconn()得到連接對象
oledbdataadapter adapter = new oledbdataadapter();        //實例化oledbdataadapter對象
string sqlstr="select * from notes order by posttime desc";    //sql語句

mydataset= new system.data.dataset();    //由于oledbdataadapter需要和dataset結合使用,所以在這里定義了dataset對象,其實說oledbdataadapter復雜,其實就是因為dataset的緣故dataset有些類似于ado中的recordset 對象,但功能遠遠超過了它,而且它和數據庫是斷開的,并能存放多個記錄集!

adapter.selectcommand = new oledbcommand(sqlstr, conn);        //設置命令為selectcommand類型的

adapter.fill(mydataset,"notes");    //執行,并將結果添加到mydataset中的”notes”表中
conn.close(); //關閉連接!

在對上面的程序加一些補充說明,由于getnotelista是得到一系列記錄,并通過控件datagrid來做分頁顯示的,所以我返回的是一個dataview類型的對象!


啊呀,太晚了,今天就到這里,我要休息了,其它幾個操作我在以后在說吧,呵呵,睡覺了!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩暖暖在线视频| 久久6免费高清热精品| 亚洲国产成人精品一区二区| 国产99视频在线观看| 日韩在线视频线视频免费网站| 亚洲自拍高清视频网站| 中文字幕精品一区二区精品| 欧美成人自拍视频| 97在线看免费观看视频在线观看| 日韩亚洲精品视频| 亚洲高清福利视频| 91精品视频免费看| 在线精品高清中文字幕| 亚洲美女视频网站| www.美女亚洲精品| 国产精品视频区| 欧美日韩国产综合新一区| 国产极品jizzhd欧美| 精品在线欧美视频| 国产欧美精品一区二区三区-老狼| 精品无人区太爽高潮在线播放| 国外日韩电影在线观看| 国产精品福利小视频| 伊人激情综合网| 日韩美女在线播放| 亚洲日本欧美中文幕| 在线视频日本亚洲性| 91久久久久久久| 欧美日韩精品在线| 久久99热这里只有精品国产| 亚洲综合在线播放| 国产成人精品在线播放| 亚洲人精品午夜在线观看| 国产视频在线观看一区二区| 国产精品99久久久久久久久| 综合激情国产一区| 国产欧美va欧美va香蕉在线| 日韩欧美亚洲范冰冰与中字| 日韩精品免费视频| 性色av一区二区三区红粉影视| 亚洲人成77777在线观看网| 91久久国产综合久久91精品网站| 久久91精品国产91久久跳| 黄色成人在线免费| 欧美一区二区大胆人体摄影专业网站| 欧美成在线观看| 在线视频欧美日韩| 红桃视频成人在线观看| 一本一本久久a久久精品牛牛影视| 日韩色av导航| 欧美成人精品h版在线观看| 狠狠色香婷婷久久亚洲精品| 欧美最猛性xxxxx免费| 性欧美暴力猛交69hd| 国产精品av免费在线观看| 国产视频精品xxxx| 国产精品色婷婷视频| 亚洲成人网在线| 亚洲精品一区在线观看香蕉| 国内偷自视频区视频综合| 88国产精品欧美一区二区三区| 亚洲欧美制服综合另类| 成人午夜小视频| 91久久久久久久一区二区| 亚洲人成五月天| 成人中心免费视频| 成人免费看片视频| 国产美女扒开尿口久久久| 一夜七次郎国产精品亚洲| 欧美激情一区二区三级高清视频| 一本大道香蕉久在线播放29| 在线观看国产精品淫| 久久天天躁狠狠躁夜夜躁| 国产精品视频午夜| 久久91精品国产91久久跳| 国产成人综合亚洲| 久久精品美女视频网站| 青草热久免费精品视频| 国产日本欧美在线观看| 久久中文精品视频| 亚洲自拍中文字幕| 97国产真实伦对白精彩视频8| 久久久久免费视频| 日本精品va在线观看| 综合网中文字幕| 日本sm极度另类视频| 夜夜狂射影院欧美极品| 久久香蕉国产线看观看av| 国内精品400部情侣激情| 欧洲亚洲女同hd| 日韩在线视频导航| 国产成人在线播放| 韩曰欧美视频免费观看| 狠狠综合久久av一区二区小说| 欧美精品手机在线| 午夜精品福利在线观看| 中文字幕欧美国内| 日韩精品福利网站| 日韩精品在线播放| 欧美性少妇18aaaa视频| 欧美大片免费看| 精品高清美女精品国产区| 日韩一区二区av| 亚洲男人天天操| 精品中文字幕在线观看| 日韩欧美国产网站| 91久久精品国产91性色| 日韩免费观看在线观看| 亚洲日本成人网| 欧美一区二区三区四区在线| 欧美日韩午夜激情| 成人情趣片在线观看免费| 日韩成人在线视频网站| 欧美电影在线观看完整版| 成人av.网址在线网站| 日韩精品在线观看网站| 欧美高清videos高潮hd| 久久精品国产成人精品| 一区二区国产精品视频| 成人精品在线视频| 亚洲一级黄色片| 欧美黄色片视频| 日韩中文字幕精品视频| 日韩一区二区三区国产| 免费91麻豆精品国产自产在线观看| 日本人成精品视频在线| 国产不卡精品视男人的天堂| 久久精品国产69国产精品亚洲| 91免费在线视频网站| 黄色成人av在线| 亚洲国产日韩欧美在线图片| 欧美日韩精品二区| 亚洲成avwww人| 国产精品一区二区三区成人| 亚洲欧洲第一视频| 亚洲欧洲美洲在线综合| 久久久久一本一区二区青青蜜月| 成人激情在线播放| 岛国av一区二区三区| 国产999精品久久久影片官网| 91精品久久久久久久久久久久久久| 欧美成人一区二区三区电影| 伊人亚洲福利一区二区三区| 中文字幕欧美精品在线| 亚洲黄一区二区| 成人亚洲综合色就1024| 成人av在线网址| 97精品国产97久久久久久免费| 亚洲天天在线日亚洲洲精| 国产午夜精品久久久| 亚洲精品国产精品国自产在线| 少妇高潮 亚洲精品| 欧美一级高清免费| 91精品国产自产在线观看永久| 正在播放亚洲1区| 成人av色在线观看| 亚洲美女免费精品视频在线观看| 国产美女精彩久久| 亚洲欧美色婷婷| 狠狠做深爱婷婷久久综合一区| 色综合伊人色综合网站| 亚洲国产美女精品久久久久∴| 国产成人福利夜色影视| 欧美日韩国产精品一区二区不卡中文|