C# 與sybase 資料庫的串連__資料庫

來源:互聯網
上載者:User

C# 與sybase 資料庫的串連

前言

Ado.net附帶了4個資料庫客戶命名空間,一個用於SQL Server,另一個用於Oracle,第三個用於ODBC資料來源,第四個用於通過OLEBC實現資料庫。如果資料庫不是SQL Server或Oracle,就應該使用OLE DB,除非還能使用ODBC。

註:以上引自《c#進階編程》第三版清華大學出版社[ISBN 7-302-10199-X/TP ﹒6975 2005年12月第2次印刷]

由上可知,目前C#與sybase資料庫的串連有2種方式

l       通過OLEBC

l       通過ODBC

通過OLEBC實現:

需要一個sybase OLEDB 驅動程式(這個可以去網上下載)。具體實現如下:

第一種方法:

1、         首先要在工程裡面引用:using System.Data.OleDb;

2、         定義一個串連串:

ConnStr= "Provider=Sybase.ASEOLEDBProvider;Server Name="150.1.1.10,8888";Initial Catalog=ismiswebdb;User Id=ismiswebdb;Password=ismiswebdba";

註:

(1)       Server Name:指的是伺服器的ip地址和連接埠號碼,中間用“,”隔開。

(2)       Initial Catalog:是資料庫伺服器的名稱

(3)       User Id:是資料庫的登入名稱。

(4)       Password:是資料庫的密碼

3、         定義一個OleDbCommand變數:thisCommand

4、         定義一個OleDbDataReader變數:thisReader

5、         在需要跟資料連線的函數裡面如下寫即可:

try

{

    OleDbCommand thisCommand = thisConnection.CreateCommand();

 

    thisCommand.CommandText = "select id,investtype,deptcode,loginname,password,realname,tel,note,rules  from     is_user where loginname = '" + loginName + "' and password = '" + passWord + "' and rules < 3";

          

    OleDbDataReader thisReader = thisCommand.ExecuteReader();

 

    //迴圈,產生鏈表結構

    while (thisReader.Read())

    {

        cGetUserInfo.ID          =   thisReader[0].ToString();

        cGetUserInfo.InvestType   =   thisReader[1].ToString();

        cGetUserInfo.DeptCode    =   thisReader[2].ToString();

        cGetUserInfo.LoginName  =   thisReader[3].ToString();

        cGetUserInfo.PassWord    =   thisReader[4].ToString();

        cGetUserInfo.RealName   =   thisReader[5].ToString();

        cGetUserInfo.Tel         =   thisReader[6].ToString();

        cGetUserInfo.Note       =   thisReader[7].ToString();

        cGetUserInfo.Rules      =   thisReader[8].ToString();

        userInfoArray.Add(cGetUserInfo);

    }

    thisReader.Close();

}

catch

{

}

    ^_^,是不是很簡單。

第二種方法:

1、     開啟下載的sybase OLEDB 驅動程式裡面的syboledb.reg檔案,是其路徑與所安裝的路徑一致(用滑鼠右鍵點擊syboledb.reg檔案,選擇編輯,可查看其路徑)。

註:當然也可以不修改預設值,按其顯示的路徑,把下載的驅動(檔案夾Sybase OLEDB)直接放在C:盤根目錄下即可。然後用滑鼠左鍵雙擊syboledb.reg檔案,進行註冊。

1、             開啟Sybase OLEDB檔案夾下的sydaadm.exe檔案,選擇[File]->[New]->[Data Source]

2、             輸入Data Source Name(自己定義)。

3、             點擊【Set Up Data Source】按鈕,輸入伺服器IP地址和連接埠號碼。

為了以防萬一,可點擊【Test Connect】按鈕進行串連測試。(當然,測試時還要輸入使用者名稱、口令)

到此,你的OLEDB已經設定完成,使用者可以使用C#與sybase進行串連了。

在程式中具體實現的代碼如下:

String SelectCmd = “select * from table”;

String connStr=”Provider=Sybase.ASEOLEDBProvider.2;”

+ “Data Source=web_pptc;Password=webpptcdba;User ID=webpptc”;

dataAdapter = new OleDbDataAdapter(SelectCmd, connStr);

……

……

更方便的方法為:你的Server Name(伺服器IP地址)和連接埠好可以在connStri裡制定,具體請到網上搜尋吧^_^.

通過ODBC

1.在伺服器上安裝Sybase用戶端,配置Dsedit,如下圖:

2.配置ODBC的系統DSN,如下圖:

注意:Data Source Name名字自己隨便起,但Server  Name 一定要與步驟1所起的Server Name一致。

至此,ODBC的配置已結束,其在程式種的代碼實現如下:

string strODBCConn = "Driver={SYBASE SYSTEM 11};Srvr=test;Uid=webpptc;Pwd=webpptcdba;DB=web_pptc"; // web_pptc是資料庫名稱

OdbcConnection oLogConn;

OdbcCommand oLogCmd;

string strSql = "select dwjm_c,ky_c from jh001";

oLogConn = new OdbcConnection(strODBCConn);

oLogCmd = new OdbcCommand(strSql, oLogConn);

oLogConn.Open();

myLogDataReader = oLogCmd.ExecuteReader(CommandBehavior.CloseConnection);

while (myLogDataReader.Read())

{

……

在此,可通過while迴圈來獲得所查詢的欄位值:

例如:String strGetValue = myLogDataReader[0].ToString();

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.