C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问_第1页
C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问_第2页
C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问_第3页
C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问_第4页
C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问(1)SQLSever

标准安全:Driver={SQLServer};Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd;

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

(2)SQLNativeClientODBCDriver(=SQLServer2005)

标准安全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:

标准安全:Driver={MicrosoftAccessDriver(*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

2、OleDbConnection(System.Data.OleDb)

(1)SQLSever

标准安全:Provider=sqloledb;DataSource=Aron1;InitialCatalog=pubs;UserId=sa;Password=asdasd;

信任的连接:

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

(useserverName\instanceNameasDataSourcetouseanspecifikSQLServerinstance,onlySQLServer2000)

(2)SQLNativeClientOLEDBProvider(=SQLServer2005)

标准安全: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:

标准安全:

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

ThisonesfromMicrosoft,thefollowingarefromOracle

标准安全:Provider=OraOLEDB.Oracle;DataSource=MyOracleDB;UserId=Username;Password=asdasd;

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

(4)Access:

标准安全:

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

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

标准安全:

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专用

标准安全:

DataSource=MyOracleDB;IntegratedSecurity=yes;--ThisoneworksonlywithOracle8irelease3orlater

指定用户名和密码:

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

指定主机:

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

其中Oracle数据库服务器IP:3

ServiceName:testDemo

用户名:oracle_test

密码:oracle

二、利用DbProviderFactory创建各种ADO.Net对象

DbProviderFactory是一个工厂类,工厂类的作用提供其他一系列相互之间有关系的类。在这里,DbProviderFactory就自动生成了包括DbConnection、DbCommand、DbDataAdapter等一系列数据库操作的相关类。

1、配置文件ConnectionString节:

configuration

connectionStrings

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

providerName="System.Data.SqlClient"/

/connectionStrings

/configuration

2、利用DbProviderFactory类自动查找数据库的驱动

ConnectionStringSettingssettings=ConfigurationManager.ConnectionStrings["default"];

DbProviderFactoryprovider=DbProviderFactories.GetFactory(settings.ProviderName);

3、利用DbProviderFactory类实例创建各种ADO.Net对象。

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获取数据库架构信息

SQLServer架构集合-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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论