<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-208  評論-469  文章-30  trackbacks-0

    連接access

    首先看一個例子代碼片斷:
    程序代碼:

    --------------------------------------------------------------------------------

    using system.data;
    using system.data.oledb;

    ......

    string strconnection="provider=microsoft.jet.oledb.4.0;";
    strconnection+=@"data source=c:\begaspnet\northwind.mdb";

    oledbconnection objconnection=new oledbconnection(strconnection);

    ......

    objconnection.open();
    objconnection.close();

    ......

    ?

    --------------------------------------------------------------------------------

    解釋:

     連接access數(shù)據(jù)庫需要導入額外的命名空間,所以有了最前面的兩條using命令,這是必不可少的!

     strconnection這個變量里存放的是連接數(shù)據(jù)庫所需要的連接字符串,他指定了要使用的數(shù)據(jù)提供者和要使用的數(shù)據(jù)源.

     "provider=microsoft.jet.oledb.4.0;"是指數(shù)據(jù)提供者,這里使用的是microsoft jet引擎,也就是access中的數(shù)據(jù)引擎,asp.net就是靠這個和access的數(shù)據(jù)庫連接的.

     "data source=c:\begaspnet\northwind.mdb"是指明數(shù)據(jù)源的位置,他的標準形式是"data source=mydrive:mypath\myfile.mdb".

    ps:
     1."+="后面的"@"符號是防止將后面字符串中的"\"解析為轉(zhuǎn)義字符.
     2.如果要連接的數(shù)據(jù)庫文件和當前文件在同一個目錄下,還可以使用如下的方法連接:
      strconnection+="data source=";
      strconnection+=mappath("northwind.mdb");
      這樣就可以省得你寫一大堆東西了!
     3.要注意連接字符串中的參數(shù)之間要用分號來分隔.

     "oledbconnection objconnection=new oledbconnection(strconnection);"這一句是利用定義好的連接字符串來建立了一個鏈接對象,以后對數(shù)據(jù)庫的操作我們都要和這個對象打交道.

     "objconnection.open();"這用來打開連接.至此,與access數(shù)據(jù)庫的連接完成.其余操作(插入,刪除...)請參閱相關書籍

    ?

    連接sql server

    例子代碼片斷:
    程序代碼:


    --------------------------------------------------------------------------------

    using system.data;
    using system.data.sqlclient;

    ...

    string strconnection="user id=sa;password=;";
    strconnection+="initial catalog=northwind;server=yoursqlserver;";
    strconnection+="connect timeout=30";

    sqlconnection objconnection=new sqlconnection(strconnection);

    ...

    objconnection.open();
    objconnection.close();

    ...

    ?

    --------------------------------------------------------------------------------

    解釋:

    連接sql server數(shù)據(jù)庫的機制與連接access的機制沒有什么太大的區(qū)別,只是改變了connection對象和連接字符串中的不同參數(shù).

    首先,連接sql server使用的命名空間不是"system.data.oledb",而是"system.data.sqlclient".

    其次就是他的連接字符串了,我們一個一個參數(shù)來介紹(注意:參數(shù)間用分號分隔):
     "user id=sa":連接數(shù)據(jù)庫的驗證用戶名為sa.他還有一個別名"uid",所以這句我們還可以寫成"uid=sa".
     "password=":連接數(shù)據(jù)庫的驗證密碼為空.他的別名為"pwd",所以我們可以寫為"pwd=".
     這里注意,你的sql server必須已經(jīng)設置了需要用戶名和密碼來登錄,否則不能用這樣的方式來登錄.如果你的sql server設置為windows登錄,那么在這里就不需要使用"user id"和"password"這樣的方式來登錄,而需要使用"trusted_connection=sspi"來進行登錄.
     "initial catalog=northwind":使用的數(shù)據(jù)源為"northwind"這個數(shù)據(jù)庫.他的別名為"database",本句可以寫成"database=northwind".
     "server=yoursqlserver":使用名為"yoursqlserver"的服務器.他的別名為"data source","address","addr".如果使用的是本地數(shù)據(jù)庫且定義了實例名,則可以寫為"server=(local)\實例名";如果是遠程服務器,則將"(local)"替換為遠程服務器的名稱或ip地址.
     "connect timeout=30":連接超時時間為30秒.

     在這里,建立連接對象用的構(gòu)造函數(shù)為:sqlconnection.

     其余的就和access沒有什么區(qū)別了!

    ?

    ********************************************************************************************************************

    用c#訪問access數(shù)據(jù)庫
    作者:unknown 更新時間: 2005-05-17 ?
    ?
    ??我編寫這個程序的動機是當我希望用c sharp訪問msaccess數(shù)據(jù)庫的時候我沒有辦法獲得任何信息和參考材料.網(wǎng)上所能獲得的所有材料都是偏重于sql的,所以我們將分兩步來編寫這個應用程序,第一我們將展示如何連接到msaccess數(shù)據(jù)庫然后看看它有多復雜.最后,我們就這樣完成了這個程序.
    ??
    ??閑言少序,讓我們開始正題.連接到數(shù)據(jù)庫的過程與我們早先的ado連接過程相比已經(jīng)發(fā)生了較大的變化.下面的圖表恰當?shù)?我希望如此)oledbconnection--> oledbcommand --> oledbdatareader.現(xiàn)在那些熟悉ado的人很明顯能看出兩者的相似之處但是為了使那些還沒有很好的適應ado的人能夠明白,下面是一些解釋.
    ??
    ??oledbconnection -->代表對數(shù)據(jù)庫的單一連接,根據(jù)底層數(shù)據(jù)庫的功能它能給你操縱數(shù)據(jù)庫的能力.有一點必須記住,雖然oledbconnection對象出了作用范圍,它也不會自動被關閉.所以,你將不得不顯示的調(diào)用這個對象的close()方法.
    ??
    ??oledbcommand -->這是就象我們在ado中使用的一樣的通常的command對象.你可以通過這個對象調(diào)用sql存儲過程或是sql查詢語句.
    ??
    ??oledbdatareader -->這個類擁有非常大的重要性因為它提供了實際上的對數(shù)據(jù)庫底層數(shù)據(jù)集的訪問.當你調(diào)用oledbcommand的executereader方法的時候它就會被創(chuàng)建,.net beta2 sdk說不要直接創(chuàng)建這個類的對象.
    ??
    ??現(xiàn)在你可以在.net beta 2的文檔中看到更多的關于這些主要對象的說明,下面是指出如何在程序中訪問數(shù)據(jù)庫的源代碼.
    ??
    ??using system;
    ??using system.data.oledb;
    ??
    ??class oledbtest{
    ??
    ??public static void main()
    ??{
    ??/創(chuàng)建數(shù)據(jù)庫連接
    ??oledbconnection aconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=c:\\db1.mdb");
    ??
    ??/創(chuàng)建command對象并保存sql查詢語句
    ??oledbcommand acommand = new oledbcommand("select * from emp_test", aconnection);
    ??try
    ??{
    ??aconnection.open();
    ??
    ??/創(chuàng)建datareader 對象來連接到表單
    ??oledbdatareader areader = acommand.executereader();
    ??console.writeline("this is the returned data from emp_test table");
    ??
    ??/循環(huán)遍歷數(shù)據(jù)庫
    ??while(areader.read())
    ??{
    ??console.writeline(areader.getint32(0).tostring());
    ??}
    ??
    ??/關閉reader對象
    ??areader.close();
    ??
    ??/關閉連接,這很重要
    ??aconnection.close();
    ??}
    ??
    ??/一些通常的異常處理
    ??catch(oledbexception e)
    ??{
    ??console.writeline("error: {0}", e.errors[0].message);
    ??}
    ??}
    ??}
    ??
    ??成功運行這個程序的步驟
    ??1.用msaccess創(chuàng)建一個名叫db1.mdb的數(shù)據(jù)庫
    ??2.創(chuàng)建一個名叫emp_test的表單
    ??3.使它包含下列數(shù)據(jù)域
    ??emp_code int
    ??emp_name text
    ??emp_ext text
    ??4.將上面的代碼保存到sample.cs文件中
    ??5.確保數(shù)據(jù)庫位于c:\并確保mdac2.6或是更新的版本已經(jīng)被安裝
    ??6.編譯運行
    ??
    ??現(xiàn)在讓我們來了解一些我們在oledbconnection對象的構(gòu)造函數(shù)看到的東西的一些細節(jié),在這里你看見諸如"provider="之類的東西.下面是一些和ado.net兼容的驅(qū)動程序類型.
    ??sqlolddb --> microsoft ole db provider for sql server,
    ??msdaora --> microsoft ole db provider for oracle,
    ??microsoft.jet.oledb.4.0 --> ole db provider for microsoft jet
    ??你可以選擇其中的任何一個但是他們會需要傳遞不同的參數(shù),例如jet.oledb.需要傳遞mdb文件的名字而sqloledb需要傳遞用戶名和密碼.
    ??
    ??所有這些驅(qū)動程序都位于system.data.oledb命名空間里,所以你必須包括它,而且它們和oledb provider for odbc不兼容,也就是說你不能在vb6.0程序里使用這些驅(qū)動程序來訪問數(shù)據(jù)庫,所以不要去尋找解釋為什么要把這些數(shù)據(jù)庫放在c:\上的資料了
    ??
    ??當你使用microsoft sql server 7.0 或者更新版本的時候,下面是微軟給出的一些指導:
    ??推薦使用.net data provider在下列情況中,使用microsoft sql server 7.0 或者更新版本的中間層應用程序,使用microsoft data engine (msde)或icrosoft sql server 7.0 或者更新版本的單層應用程序.
    ??建議將ole db provider for sql server (sqloledb)和ole db .net data provider一起使用.
    ??對于microsoft sql server 6.5和更早的版本,你必須同時使用ole db provider for sql server 和 ole db.net data provider.
    ??推薦使用microsoft sql server 6.5和更早的版本或是oracle的中間層應用程序使用ole db .net data provider.
    ??對于microsoft sql server 7.0 或者更新版本,推薦sql server .net data provider.
    ??推薦單層應用程序使用microsoft access數(shù)據(jù)庫.
    ??不推薦一個中間層程序同時使用ole db .net data provider和microsoft access數(shù)據(jù)庫.
    ??不再支持ole db provider for odbc (msdasql)
    posted on 2006-11-26 21:21 EricWong 閱讀(1365) 評論(1)  編輯  收藏

    評論:
    # re: 用asp.net/c#連接access和sql server數(shù)據(jù)庫 2007-08-19 22:55 | whp
    很詳細 也很實用 很適合新人   回復  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 日韩精品极品视频在线观看免费| 一本岛v免费不卡一二三区| 免费国产在线视频| ZZIJZZIJ亚洲日本少妇JIZJIZ| 亚洲日韩一区二区一无码| 在线观看免费av网站| 2022年亚洲午夜一区二区福利| 99久久成人国产精品免费| 亚洲精品V欧洲精品V日韩精品 | 国产亚洲精品影视在线产品| 美女露隐私全部免费直播| 亚洲av午夜精品一区二区三区| 免费人成网站永久| 国产精品亚洲玖玖玖在线观看| 九一在线完整视频免费观看| 国产精品jizz在线观看免费| 老外毛片免费视频播放| 亚洲国产电影av在线网址| 一级特黄a大片免费| 亚洲国产精品一区二区久久hs| 四虎影视在线影院在线观看免费视频 | 亚洲大香人伊一本线| 日韩免费三级电影| 深夜福利在线视频免费| 亚洲国产精品第一区二区| 免费国产污网站在线观看15| 亚洲va成无码人在线观看| 国产网站免费观看| ww在线观视频免费观看w| 亚洲福利在线视频| 18禁成年无码免费网站无遮挡| 日本亚洲中午字幕乱码| 亚洲日韩精品一区二区三区| 91在线老王精品免费播放| 亚洲妇女无套内射精| 在线亚洲精品自拍| 黄页网站在线看免费| caoporn国产精品免费| 亚洲神级电影国语版| 哒哒哒免费视频观看在线www| 精品国产污污免费网站|