C# 連接數據庫(ODBC、Oledb、Oracle)


ODBC

OdbcConnection.ConnectionString

Oledb

OleDbConnection.ConnectionString

OracleClient

OracleConnection.ConnectionString

  • ODBC

開放數據庫連接(Open Database Connectivity,ODBC)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分。ODBC可以連接多種數據庫。

可能的連接字符串:

 /* 可能的連接字符串:
                    "Driver={SQL Server};Server=(local);Trusted_Connection=Yes;Database=AdventureWorks;"

                    "Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;Persist Security Info=False;Trusted_Connection=Yes"

                    "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\bin\Northwind.mdb"

                    "Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\bin\book1.xls"

                    "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\bin"

                    "DSN=dsnname"
            */
View Code

連接實例:

 string connStr = string.Format("Driver={2}Microsoft Access Driver (*.mdb){3};DBQ={0};PWD={1};", mdbPath, dbPassWord,"{","}");//連接本地帶密碼的mdb
            connStr = string.Format("Driver={2}Oracle in OraDb11g_home1{3};Server=orcl;Persist Security Info=False;Trusted_Connection=Yes;UID={0};PWD={1}",
                "aqgis", "1", "{", "}");//連接oracle數據庫aqgis,密碼1----Oracle in OraDb11g_home1為驅動名稱
            OdbcConnection OdbcConn = new OdbcConnection(connStr);
            OdbcConn.Open();
            OdbcDataAdapter pAdapter = new OdbcDataAdapter("select * from MDARESULT", OdbcConn);
            DataSet pOdbcDataset = new DataSet();
            pAdapter.Fill(pOdbcDataset);
            OdbcConn.Close();

其中Oracle in OraDb11g_home1為驅動名稱,如下圖:

也就是說,在上圖中所有安裝的驅動程序,都可以通過ODBC進行調用。特別注意,驅動的名稱必須與系統寫的完全一致,空格也不可以省略!!

下面的例子都是打開同一個mdb實例,使用了不同的驅動程序,方法:

 string pDriverName = "Driver do Microsoft Access (*.mdb)";//空格不可以省略
            pDriverName = "Microsoft Access Driver (*.mdb)";//空格不可以省略
            pDriverName = "Microsoft Access Driver (*.mdb, *.accdb)";//空格不可以省略
            pDriverName = "Microsoft Access-Treiber (*.mdb)";//空格不可以省略

            connStr = string.Format("Driver={0}{1}{2};DBQ={3};PWD={4};", "{", pDriverName, "}", mdbPath, dbPassWord);//本地;mdbPath-文件路徑;dbPassWord-mdb文件密碼,沒有可去掉。
            OdbcConnection OdbcConn = new OdbcConnection(connStr);
            OdbcConn.Open();
            OdbcDataAdapter pAdapter = new OdbcDataAdapter("select * from MDARESULT", OdbcConn);
            DataSet pOdbcDataset = new DataSet();
            pAdapter.Fill(pOdbcDataset);
            OdbcConn.Close();

 

  • Oledb

可能的連接字符串:

"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"

"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"

例子:

  //帶密碼的mdb-兩種寫法OLEDB.4.0
            //string connstr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source={0};User Id=Admin;PassWord={1};", mdbPath, dbPassWord);
            string connstr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source={0};Jet oledb:database password={1};", mdbPath, dbPassWord);
            //OLEDB.12.0(可打開.accdb)
            //string connstr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source={0};Jet oledb:database password={1};", mdbPath, dbPassWord);

            OleDbConnection pConn = new OleDbConnection(connstr);
            pConn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter();


            DataSet db_filePath = new System.Data.DataSet();
            adapter.SelectCommand = new OleDbCommand(sqlstr, pConn);
            adapter.Fill(db_filePath);

Oledb也可以像ODBC那樣,使用不同的驅動連接數據庫,只需要修改驅動提供名稱(Provide)即可。

新建文本文檔,將文本文檔重命名為:“打開數據鏈接屬性對話框(Oledb驅動列表).udl”,雙擊該文件即可打開下面的對話框:

列表中的驅動程序都可以用來進行數據庫操作!

  • Oracle

例子:

string connectionString = string.Format("Data Source={0};User Id={1};Password={2};", "orcl", "aqgis", "1");//orcl實例名,aqgis用戶名
            using (System.Data.OracleClient.OracleConnection connection = new System.Data.OracleClient.OracleConnection(connectionString))
            {
                connection.Open();
                System.Data.OracleClient.OracleDataAdapter pAda = new System.Data.OracleClient.OracleDataAdapter("select * from MDARESULT", connection);
                DataSet pOracleDt = new DataSet();
                pAda.Fill(pOracleDt);
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM