?? idbclass.cs
字號(hào):
using System;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.OracleClient;
using System.Configuration;
namespace Example_11_14
{
public enum DatabaseType
{
Access,
SQLServer,
Oracle
// 任何其他數(shù)據(jù)源類型
}
public enum ParameterType
{
Integer,
Char,
VarChar
// 定義公用參數(shù)類型集
}
public class DataFactory
{
private DataFactory(){}
/// <summary>
/// 創(chuàng)建訪問(wèn)數(shù)據(jù)庫(kù)的鏈接
/// </summary>
public static IDbConnection CreateConnection(string ConnectionString,DatabaseType dbtype)
{
IDbConnection cnn;
switch(dbtype)
{
///訪問(wèn)Access數(shù)據(jù)庫(kù)
case DatabaseType.Access:
cnn = new OleDbConnection(ConnectionString);
break;
///訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
case DatabaseType.SQLServer:
cnn = new SqlConnection(ConnectionString);
break;
///訪問(wèn)Oracle數(shù)據(jù)庫(kù)
case DatabaseType.Oracle:cnn = new OracleConnection
(ConnectionString);
break;
///默認(rèn)訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
default:
cnn = new SqlConnection(ConnectionString);
break;
}
///返回訪問(wèn)數(shù)據(jù)庫(kù)的鏈接
return cnn;
}
/// <summary>
/// 創(chuàng)建訪問(wèn)數(shù)據(jù)庫(kù)的Command
/// </summary>
public static IDbCommand CreateCommand(string CommandText, DatabaseType dbtype,
IDbConnection cnn)
{
IDbCommand cmd;
switch(dbtype)
{
///訪問(wèn)Access數(shù)據(jù)庫(kù)
case DatabaseType.Access:
cmd = new OleDbCommand(CommandText,(OleDbConnection)cnn);
break;
///訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
case DatabaseType.SQLServer:
cmd = new SqlCommand(CommandText,(SqlConnection)cnn);
break;
///訪問(wèn)Oracle數(shù)據(jù)庫(kù)
case DatabaseType.Oracle:
cmd = new OracleCommand(CommandText,(OracleConnection)cnn);
break;
///默認(rèn)訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
default:
cmd = new SqlCommand(CommandText,(SqlConnection)cnn);
break;
}
///返回訪問(wèn)數(shù)據(jù)庫(kù)的Command
return cmd;
}
/// <summary>
/// 創(chuàng)建訪問(wèn)數(shù)據(jù)庫(kù)的DataAdapter
/// </summary>
public static DbDataAdapter CreateAdapter
(IDbCommand cmd, DatabaseType dbtype)
{
DbDataAdapter da;
switch(dbtype)
{
///訪問(wèn)Access數(shù)據(jù)庫(kù)
case DatabaseType.Access:
da = new OleDbDataAdapter
((OleDbCommand)cmd);
break;
///訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
case DatabaseType.SQLServer:
da = new SqlDataAdapter
((SqlCommand)cmd);
break;
///訪問(wèn)Oracle數(shù)據(jù)庫(kù)
case DatabaseType.Oracle:
da = new OracleDataAdapter
((OracleCommand)cmd);
break;
///默認(rèn)訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
default:
da = new SqlDataAdapter
((SqlCommand)cmd);
break;
}
///返回訪問(wèn)數(shù)據(jù)庫(kù)的DataAdapter
return da;
}
}
public class CustomersData
{
public DataTable GetCustomers()
{
string ConnectionString =
ConfigurationSettings.AppSettings
["ConnectionString"];
DatabaseType dbtype =
(DatabaseType)Enum.Parse
(typeof(DatabaseType),
ConfigurationSettings.AppSettings
["DatabaseType"]);
IDbConnection cnn =
DataFactory.CreateConnection
(ConnectionString,dbtype);
string cmdString = "SELECT CustomerID" +
",CompanyName,ContactName FROM Customers";
IDbCommand cmd =
DataFactory.CreateCommand(
cmdString, dbtype,cnn);
DbDataAdapter da =
DataFactory.CreateAdapter(cmd,dbtype);
DataTable dt = new DataTable("Customers");
da.Fill(dt);
return dt;
}
public DataTable GetCustomerOrders(string CustomerID)
{
// 待定
return null;
}
public DataTable GetCustomersByCountry
(string CountryCode)
{
// 待定
return null;
}
public bool InsertCustomer()
{
// 待定
return false;
}
}
public interface IDbCustomers
{
DataTable GetCustomers();
DataTable GetCustomerOrders(string CustomerID);
DataTable GetCustomersByCountry(string CountryCode);
bool InsertCustomer();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -