C#使用ADO.Net連接數(shù)據(jù)庫與DbProviderFactory實(shí)現(xiàn)多數(shù)據(jù)庫訪問_第1頁
C#使用ADO.Net連接數(shù)據(jù)庫與DbProviderFactory實(shí)現(xiàn)多數(shù)據(jù)庫訪問_第2頁
C#使用ADO.Net連接數(shù)據(jù)庫與DbProviderFactory實(shí)現(xiàn)多數(shù)據(jù)庫訪問_第3頁
C#使用ADO.Net連接數(shù)據(jù)庫與DbProviderFactory實(shí)現(xiàn)多數(shù)據(jù)庫訪問_第4頁
C#使用ADO.Net連接數(shù)據(jù)庫與DbProviderFactory實(shí)現(xiàn)多數(shù)據(jù)庫訪問_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第C#使用ADO.Net連接數(shù)據(jù)庫與DbProviderFactory實(shí)現(xiàn)多數(shù)據(jù)庫訪問(1)SQLSever

標(biāo)準(zhǔn)安全:Driver={SQLServer};Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd;

信任的連接:Driver={SQLServer};Server=Aron1;Database=pubs;Trusted_Connection=yes;

(2)SQLNativeClientODBCDriver(=SQLServer2005)

標(biāo)準(zhǔn)安全Driver={SQLNativeClient};Server=Aron1;Database=pubs;UID=sa;PWD=asdasd;

信任的連接

Driver={SQLNativeClient};Server=Aron1;Database=pubs;Trusted_Connection=yes;--IntegratedSecurity=SSPI等同于Trusted_Connection=yes

(3)Oracle:

新版本:Driver={MicrosoftODBCforOracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;

舊版本:Driver={MicrosoftODBCDriverforOracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;

(4)Access:

標(biāo)準(zhǔn)安全:Driver={MicrosoftAccessDriver(*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

2、OleDbConnection(System.Data.OleDb)

(1)SQLSever

標(biāo)準(zhǔn)安全:Provider=sqloledb;DataSource=Aron1;InitialCatalog=pubs;UserId=sa;Password=asdasd;

信任的連接:

Provider=sqloledb;DataSource=Aron1;InitialCatalog=pubs;IntegratedSecurity=SSPI;

(useserverName\instanceNameasDataSourcetouseanspecifikSQLServerinstance,onlySQLServer2000)

(2)SQLNativeClientOLEDBProvider(=SQLServer2005)

標(biāo)準(zhǔn)安全:Provider=SQLNCLI;Server=Aron1;Database=pubs;UID=sa;PWD=asdasd;

信任的連接:

Provider=SQLNCLI;Server=Aron1;Database=pubs;Trusted_Connection=yes;--IntegratedSecurity=SSPI等同于Trusted_Connection=yes

(3)Oracle:

標(biāo)準(zhǔn)安全:

Provider=msdaora;DataSource=MyOracleDB;UserId=UserName;Password=asdasd;

ThisonesfromMicrosoft,thefollowingarefromOracle

標(biāo)準(zhǔn)安全:Provider=OraOLEDB.Oracle;DataSource=MyOracleDB;UserId=Username;Password=asdasd;

信任的連接:Provider=OraOLEDB.Oracle;DataSource=MyOracleDB;OSAuthent=1;

(4)Access:

標(biāo)準(zhǔn)安全:

Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\somepath\mydb.mdb;UserId=admin;Password=;

3、SqlConnection(Syste.Data.SqlClient)SQL專用

標(biāo)準(zhǔn)安全:

DataSource=Aron1;InitialCatalog=pubs;UserId=sa;Password=asdasd;

-或者-Server=Aron1;Database=pubs;UserID=sa;Password=asdasd;Trusted_Connection=False

信任的連接:

DataSource=Aron1;InitialCatalog=pubs;IntegratedSecurity=SSPI;

-或者-

Server=Aron1;Database=pubs;Trusted_Connection=True;(useserverName\instanceNameasDataSourcetouseanspecifikSQLServerinstance,僅僅適用于SQLServer2000)

4、OracleConnection(System.Data.OracleClient\Oracle.ManagedDataAccess.Client)Oracle專用

標(biāo)準(zhǔn)安全:

DataSource=MyOracleDB;IntegratedSecurity=yes;--ThisoneworksonlywithOracle8irelease3orlater

指定用戶名和密碼:

DataSource=MyOracleDB;UserId=username;Password=passwd;IntegratedSecurity=no;--ThisoneworksonlywithOracle8irelease3orlater

指定主機(jī):

DataSource=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=3)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=testDemo)));UserId=oracle_test;Password=oracle

其中Oracle數(shù)據(jù)庫服務(wù)器IP:3

ServiceName:testDemo

用戶名:oracle_test

密碼:oracle

二、利用DbProviderFactory創(chuàng)建各種ADO.Net對(duì)象

DbProviderFactory是一個(gè)工廠類,工廠類的作用提供其他一系列相互之間有關(guān)系的類。在這里,DbProviderFactory就自動(dòng)生成了包括DbConnection、DbCommand、DbDataAdapter等一系列數(shù)據(jù)庫操作的相關(guān)類。

1、配置文件ConnectionString節(jié):

configuration

connectionStrings

addname="default"connectionString="server=localhost;userid=sa;password=******;database=northwind"

providerName="System.Data.SqlClient"/

/connectionStrings

/configuration

2、利用DbProviderFactory類自動(dòng)查找數(shù)據(jù)庫的驅(qū)動(dòng)

ConnectionStringSettingssettings=ConfigurationManager.ConnectionStrings["default"];

DbProviderFactoryprovider=DbProviderFactories.GetFactory(settings.ProviderName);

3、利用DbProviderFactory類實(shí)例創(chuàng)建各種ADO.Net對(duì)象。

using(DbConnectionconn=provider.CreateConnection())

conn.ConnectionString=settings.ConnectionString;

conn.Open();

DbCommandcmd=conn.CreateCommand();

cmd.CommandText="Selecttop10*FromShortTermBill";

//使用DbDataAdapter

DbDataAdapterda=provider.CreateDataAdapter();

da.SelectCommand=cmd;

DataSetds=newDataSet();

da.Fill(ds);

da.Dispose();

Console.WriteLine(ds.Tables[0].Rows[0]["BillCode"]);

//使用DbDataReader

DbDataReaderreader=cmd.ExecuteReader()

while(reader.Read())

Console.WriteLine(reader.GetString(0));

conn.Close();

}

三、利用DbConnection獲取數(shù)據(jù)庫架構(gòu)信息

SQLServer架構(gòu)集合-ADO.NET|Microsoft官方文檔

classProgram

staticvoidMain()

stringconnectionString=GetConnectionString();

using(SqlConnectionconnection=newSqlConnection(connectionString))

//Connecttothedatabasethenretrievetheschemainformation.

connection.Open();string[]columnRestrictions=newString[4];

//Forthearray,0-memberrepresentsCatalog;1-memberrepresentsSchema;

//2-memberrepresentsTableName;3-memberrepresentsColumnName.

//NowwespecifytheTable_NameandColumn_Nameofthecolumnswhatwewanttogetschemainformation.

columnRestrictions[2]="Device";

DataTabledepartmentIDSchemaTable=connection.GetSchema("Columns",columnRestrictions);

ShowColumns(departmentIDSchemaTable);

privatestaticstringGetConnectionString()

//Toavoidstoringtheconnectionstringinyourcode,

//youcanretrieveitfromaconfigurationfile.

return"server=;Database=TPM;user=it;pwd=;ApplicationIntent=ReadOnly;MultiSubnetFailover=True";

privatestaticvoidShowColumns(DataTablecolumnsTable)

varselectedRows=frominfoincolumnsTable.AsEnumerable()

selectnew

TableCatalog=info["TABLE_CATALOG"],

TableSchema=info["TABLE_SCHEMA"],

TableName=info["TABLE_NAME"],

ColumnName=info["COLUMN_NAME"],

DataType=info["DATA_TYPE"],

ORDINAL_POSITION=info["ORDINAL_POSITION"],

COLUMN_DEFAULT=info["COLUMN_DEFAULT"],

IS_NULLABLE=info["IS_NULLABLE"],

CHARACTER_MAXIMUM_LENGTH=info["CHARACTER_MAXIMUM_LENGTH"],

NUMERIC_PRECISION=info["NUMERIC_PRECISION"],

NUMERIC_SCALE=info["NUMERIC_SCALE"],

DATETIME_PRECISION=info["DATETIME_PRECISION"],

Console.WriteLine("{0,-15},{1,-15},{2,-15},{3,-15},{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論