⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idbclass.cs

📁 ASP C#代码实例 适合初学人士学习使用
💻 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 + -