📄 idbclass.cs
字号:
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
// 任何其他数据源类型
}
public enum ParameterType
{
Integer,
Char,
VarChar
// 定义公用参数类型集
}
public class DataFactory
{
private DataFactory(){}
/// <summary>
/// 创建访问数据库的链接
/// </summary>
public static IDbConnection CreateConnection(string ConnectionString,DatabaseType dbtype)
{
IDbConnection cnn;
switch(dbtype)
{
///访问Access数据库
case DatabaseType.Access:
cnn = new OleDbConnection(ConnectionString);
break;
///访问SQL Server数据库
case DatabaseType.SQLServer:
cnn = new SqlConnection(ConnectionString);
break;
///访问Oracle数据库
case DatabaseType.Oracle:cnn = new OracleConnection
(ConnectionString);
break;
///默认访问SQL Server数据库
default:
cnn = new SqlConnection(ConnectionString);
break;
}
///返回访问数据库的链接
return cnn;
}
/// <summary>
/// 创建访问数据库的Command
/// </summary>
public static IDbCommand CreateCommand(string CommandText, DatabaseType dbtype,
IDbConnection cnn)
{
IDbCommand cmd;
switch(dbtype)
{
///访问Access数据库
case DatabaseType.Access:
cmd = new OleDbCommand(CommandText,(OleDbConnection)cnn);
break;
///访问SQL Server数据库
case DatabaseType.SQLServer:
cmd = new SqlCommand(CommandText,(SqlConnection)cnn);
break;
///访问Oracle数据库
case DatabaseType.Oracle:
cmd = new OracleCommand(CommandText,(OracleConnection)cnn);
break;
///默认访问SQL Server数据库
default:
cmd = new SqlCommand(CommandText,(SqlConnection)cnn);
break;
}
///返回访问数据库的Command
return cmd;
}
/// <summary>
/// 创建访问数据库的DataAdapter
/// </summary>
public static DbDataAdapter CreateAdapter
(IDbCommand cmd, DatabaseType dbtype)
{
DbDataAdapter da;
switch(dbtype)
{
///访问Access数据库
case DatabaseType.Access:
da = new OleDbDataAdapter
((OleDbCommand)cmd);
break;
///访问SQL Server数据库
case DatabaseType.SQLServer:
da = new SqlDataAdapter
((SqlCommand)cmd);
break;
///访问Oracle数据库
case DatabaseType.Oracle:
da = new OracleDataAdapter
((OracleCommand)cmd);
break;
///默认访问SQL Server数据库
default:
da = new SqlDataAdapter
((SqlCommand)cmd);
break;
}
///返回访问数据库的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();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -