1.了解OLEDB和ODBC
OLEDB和ODBC是两种常见的数据库访问技术,它们之间有一些区别。
OLEDB(Object Linking and Embedding Database)是一种基于组件对象模型(COM)的数据库访问技术,主要用于访问Microsoft Office数据库,如Access和Excel。OLEDB支持多种数据源,包括关系型数据库、文本文件和XML文件等。OLEDB使用ADO(ActiveX Data Objects)作为应用程序和数据库之间的中间层,提供了一种面向对象的方式来访问数据库。
ODBC(Open Database Connectivity)是一种开放式的数据库访问技术,可以访问各种不同类型的数据库,包括关系型数据库、文本文件、Excel和XML文件等。ODBC使用一组标准API(应用程序编程接口)来实现数据库访问,支持多种数据库管理系统(DBMS),如MySQL、Oracle和SQL Server等。ODBC可以通过ODBC驱动程序来访问不同类型的数据库,提供了一种标准化的数据库访问方式。
总的来说,OLEDB主要用于访问Microsoft Office数据库,而ODBC是一种通用的数据库访问技术,可以访问各种不同类型的数据库。
2.连接字符串
ConnectionStrings.com为连接字符串提供了一个简单的参考。关于与数据源—软件连接相关的主题的文章和指南的知识库,以及一组问答论坛,开发人员可以在其中相互帮助,为他们的系统找到与连接相关的解决方案。
ConnectionStrings.com - Forgot that connection string? Get it here!
/// <summary>
/// 获取数据操作类
/// 连接串:http://www.connectionstrings.com/
/// sybase AseConnection 连接串:Data Source='myASEserver';Port=5000;Database='myDBname';UID='username';PWD='password';"
/// sybase OleDb连接串: Provider=Sybase.ASEOLEDBProvider;Server Name=myASEserver,5000;Initial Catalog=myDBname;User Id=username;Password=password
/// sybase odbc连接串:Driver={SYBASE ASE ODBC Driver};Srvr=Aron1;Uid=username;Pwd=password" or "DSN=;Uid=;Pwd="
/// oracle OracleConnection连接串: Data Source=MyOracleDB;User Id=username;Password=passwd;Integrated Security=no;"
/// oracle Oledb 连接串:"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"
/// oracle odbc 连接串:"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"
/// mysql MySqlClient : "Host=server; UserName=myusername; Password=mypassword;Database=mydb;"
/// mysql OleDb: "Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;"
/// SQLServer 200 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
/// 通用odbc连接 串: Dsn=cimas;Uid=sa;Pwd=123321
/// </summary>
/// <param name="strConnection"></param>
/// <param name="DBType">数据库类型(ODBC,OleDb,Sybase,Oracle,DB2,SqlServer,MySql)</param>
/// <returns></returns>
public static DBOperator GetDBOperator(string strConnection, string DBType, string strPassword)
{
switch (DBType.ToLower().Trim())
{
case "odbc":
return new OdbcDBOperator(strConnection, strPassword);
case "sqlserver":
return new SqlDBOperator(strConnection, strPassword);
case "sqlite":
return new SQLiteOperator(strConnection, strPassword);
default://默认是oledb模式
return new OleDBOperator(strConnection);
}
}