c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(三)

25 篇文章 0 订阅
11 篇文章 0 订阅

作者PeterXu  来源:Blog.CSDN  Blog: http://blog.csdn.net/peterreg/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。
本文地址:http://blog.csdn.net/peterreg/archive/2008/04/02/2243124.aspx

各派生类的具体实现,此时只要实现DBAccess的各个虚函数即可。
         private   class  Access : DBAccess
        
{
            
public Access(DBType type)
                : 
base(type)
            
{
            }


            
protected override void InitConn(string strServer, string strDataBase, string strUser, string strPwd)
            
{
                
string strConn = "Provider = ";
                
switch (strDataBase.Substring(strDataBase.LastIndexOf('.'+ 1).ToLower())
                
{
                    
case "mdb":     // 2000, 2003
                        strConn += "Microsoft.Jet.OleDb.4.0;";
                        
break;

                    
case "accdb":   // 2007
                        strConn += "Microsoft.ACE.OLEDB.12.0;";
                        
break;

                    
default:
                        
throw (new Exception("Unknown Access Version."));
                    
//break;
                }

                strConn 
+= CON_strDataBase + " = " + strDataBase;
                
//strConn += CON_strUser + " = " + strUser;
                
//strConn += CON_strPwd + " = " + strPwd;
                base.m_oConn = new OleDbConnection(strConn);
            }


            
protected override DbCommand GetCmd(string strCmd)
            
{
                
return new OleDbCommand(strCmd, (OleDbConnection)base.m_oConn);
            }


            
protected override DbDataAdapter DbAdp
            
{
                
get return new OleDbDataAdapter(); }
            }


            
public override DataTable Tables
            
{
                
get
                
{
                    
return ((OleDbConnection)base.m_oConn).GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] nullnullnull"Table" });
                }

            }


            
public override DataTable GetColumns()
            
{
                DataTable dt 
= new DataTable();
                
foreach (DataRow row in this.Tables.Rows)
                
{
                    dt.Merge(
this.GetColumns(row["TABLE_NAME"].ToString()));
                }

                
return dt;
            }


            
public override DataTable GetColumns(string strTable)
            
{
                
return ((OleDbConnection)base.m_oConn).GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] nullnull, strTable, null });
            }

        }


        
private   class  SQL : DBAccess
        
{
            
public SQL(DBType type)
                : 
base(type)
            
{
            }


            
protected override void InitConn(string strServer, string strDataBase, string strUser, string strPwd)
            
{
                
string strConn = CON_strServer + " = " + strServer + ";";
                strConn 
+= CON_strDataBase + " = " + strDataBase + ";";
                strConn 
+= CON_strUser + " = " + strUser + ";";
                strConn 
+= CON_strPwd + " = " + strPwd + ";";
                strConn 
+= CON_strConnTimeOut;
                
base.m_oConn = new SqlConnection(strConn);
            }


            
protected override DbCommand GetCmd(string strCmd)
            
{
                
return new SqlCommand(strCmd, (SqlConnection)base.m_oConn);
            }


            
protected override DbDataAdapter DbAdp
            
{
                
get return new SqlDataAdapter(); }
            }


            
public override DataTable Tables
            
{
                
get return ((SqlConnection)base.m_oConn).GetSchema("Tables"null); }
            }


            
public override DataTable GetColumns()
            
{
                
return ((SqlConnection)base.m_oConn).GetSchema("Columns"null);
            }


            
public override DataTable GetColumns(string strTable)
            
{
                
return ((SqlConnection)base.m_oConn).GetSchema("Columns"new string[] nullnull, strTable, null });
            }

        }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
using System; using System.Data; using System.Configuration; using System.Data.OleDb; namespace xxxxx { /// <summary> /// Access数据库访问类 /// </summary> public class DataAccess { private static OleDbConnection conn = new OleDbConnection(); private static OleDbCommand comm = new OleDbCommand(); private static string asscessPath = @".\PoliScan.mdb"; /// <summary> /// 设置Access数据库路径 /// </summary> /// <param name="path">完整的路径字符串</param> public static void SetAccessPath(string path) { asscessPath = path; } /// <summary> /// 打开数据库 /// </summary> /// <returns>成功返回 true;失败返回 false;异常时抛出异常</returns> public static bool OpenConnection() { bool retval = false; if (conn.State != ConnectionState.Open) { conn.ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + asscessPath; comm.Connection = conn; try { conn.Open(); if (conn.State == ConnectionState.Open) { retval = true; } } catch (Exception e) { throw new Exception(e.Message); } ............................ ............................ using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.OleDb; using System.Data.SqlClient; /// <summary> /// DataBase 的摘要说明 /// </summary> public class DataBase : IDisposable { public DataBase() { // // TODO: 在此处添加构造函数逻辑 // } private SqlConnection con; //创建连接对象 #region 打开数据库连接 /// <summary> /// 打开数据库连接. /// </summary> private void Open() { // 打开数据库连接 if (con == null) { con = new SqlConnection("Data Source = . ;Database = CET ;Integrated Security = SSPI "); } if (con.State == System.Data.ConnectionState.Closed) con.Open(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值