|
此文章由 findcaiyzh 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 findcaiyzh 所有!转贴必须注明作者、出处和本声明,并保持内容完整
使用DbProviderFactory
connection, transaction, command, datareader什么的都使用接口
IDbConnection, IDbTransaction 等。
public IDbConnection GetConnection()
{
// Get the provider from the config file
DbProvider provider = (DbProvider)Enum.Parse(
typeof(DbProvider),
(string)ConfigurationManager.AppSettings["provider"]);
IDbConnection connection = null;
switch (provider)
{
case DbProvider.SqlClient:
connection = new System.Data.SqlClient.SqlConnection();
break;
case DbProvider.OleDb:
connection = new System.Data.OleDb.OleDbConnection();
break;
case DbProvider.Odbc:
connection = new System.Data.Odbc.OdbcConnection();
break;
case DbProvider.Oracle:
connection = new System.Data.OracleClient.OracleConnection();
break;
}
return connection;
}
public enum DbProvider
{ SqlClient, OleDb, Odbc, Oracle };
XML Application Configuration File
<configuration>
<appSettings>
<add key="provider" value="SqlClient" />
</appSettings>
</configuration>
private DataTable GetData(string commandText, CommandType commandType)
{
//get SqlDbCommand
var command = factory.CreateCommand();
command.Connection = GetProviderConnection();
if (command.Connection == null) return null;
command.CommandText = commandText;
command.CommandType = commandType;
command.Connection.Open();
var dataTable = new DataTable();
//Get SqlDataReader and populate data table
dataTable.Load(command.ExecuteReader());
command.Connection.Close();
return dataTable;
}
第一次感觉考认证的用处:) |
评分
-
查看全部评分
|