数据库操作类

using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;

namespace LongOA.DsBase
{
 /// <summary>
 /// database 的摘要说明。
 /// </summary>
 public static class Database
 {

        public static OleDbConnection Conn
        {
            get
            {
                return SysInfo.Conn;
            }
        }
       
        /// <summary>
        /// 此方法是将SQL与ACCESS两种数据库的SQL语句进行转换,达到在这两种数据库上都能运行的目的
        /// </summary>
        /// <param name="S"> SQL语句 </param>
        /// <returns> 转换后的SQL语句 </returns>
        private static string Escape(ref String S)
        {
            S = S.Replace("^", "'");
            return S;
        }

  /// <summary>
  /// 用指定的SQL语句,生成DataAdapter
  /// </summary>
  /// <param name="SQL"> 指定有效的SELECT语句 </param>
  /// <returns> OleDbDataAdapter </returns>
  public static OleDbDataAdapter CreateDa(string SQL)
  {
   OleDbDataAdapter Da;
            Da = new OleDbDataAdapter(Escape(ref SQL), Conn);
   return Da;
  }

  /// <summary>
  /// 用指定的SQL语句,生成一个command对象
  /// </summary>
  /// <param name="SQLStr"> 指定有效的SELECT语句 </param>
  /// <returns> OleDbCommand </returns>
  public static OleDbCommand sqlcmd(string Sqlstr)
  {
            OleDbCommand cmd = new OleDbCommand(Escape(ref Sqlstr), Conn);
   return cmd;
  }

  /// <summary>
  /// 用指定的SQL语句,生成DataReader
  /// </summary>
  /// <param name="sqlstr"> 指定有效的SELECT语句 </param>
  /// <returns> OleDbDataReader </returns>
  public static OleDbDataReader sqlreader(string sqlstr)//用来执行sqldatareader的地方都可以直接用这个方法的
  {
            OleDbCommand cmdP = new OleDbCommand(Escape(ref sqlstr), Conn);
   OleDbDataReader reader = cmdP.ExecuteReader();
   return reader;
  }

  /// <summary>
  /// 执行SQL语句
  /// </summary>
  /// <param name="sqlstr"> SQL语句为 Insert Delete Update </param>
  /// <returns> 返回SQL语句所引响的行数,如果正确执行则返回一个大于0的数值 </returns>
  public static int sqlExecute(string sqlstr)
  {
            OleDbCommand cmd = sqlcmd(Escape(ref sqlstr));
   int i=cmd.ExecuteNonQuery();
   return i;
  }

  /// <summary>
  /// 执行SQL语句
  /// </summary>
  /// <param name="sqlstr"> SQL语句为 select </param>
  /// <returns> true 有返回值 /  false无 </returns>
  public static bool IsExistsRecord(string sqlstr)
  {
   try
   { string m="";
            Object n = sqlcmd(Escape(ref sqlstr)).ExecuteScalar();
                  m=strSafe(n);
    return m!="";
   }
   catch(Exception)
   { throw;
   }
  }

  /// <summary>
  /// 返回聚合结果
  /// </summary>
  /// <param name="sql">要执行的sql语句</param>
  /// <returns>  </returns>
  public static object juheSql(string sql)
  {
            OleDbCommand command = new OleDbCommand(Escape(ref sql), Conn);
   command.CommandType = CommandType.Text;
   try
   {
                Object Result = command.ExecuteScalar();
                return Result;
   }
   catch
   {
    return 0;
   }
  }
       
  /// <summary>
  /// 返回DataSet的查询
  /// </summary>
  /// <param name="sql">要执行的sql语句</param>
  /// <returns></returns>
  public static DataSet selectData(string sql)
  {
            OleDbDataAdapter da = new OleDbDataAdapter(Escape(ref sql), Conn);
   DataSet ds = new DataSet();
   da.Fill(ds);
   return ds;
  }
  
  public static string strSafe(Object obj)//因为null与""是不同的,必须做相应的转换,不然会出现异常!
  {
   if(obj == null)
    obj="";
   return obj.ToString();
  }
 }

    /// <summary>
    /// 获取数据库连接信息
    /// </summary>
    public static class DataConnProvid
    {
        /// <summary>
        ///  连接数据源字符串
        /// </summary>
        public static string strConn = ConfigurationManager.AppSettings["ConnectionString"];

        /// <summary>
        /// 数据库驱动
        /// </summary>
        public static string Provider
        { get { return SysInfo.Conn.Provider; } }
        /// <summary>
        /// 数据源,服务器IP或服务器名
        /// </summary>
        public static string DataSource
        { get { return SysInfo.Conn.DataSource; } }
        /// <summary>
        /// 数据库名称
        /// </summary>
        public static string DataBase
        { get { return SysInfo.Conn.Database; } }
        /// <summary>
        /// 数据库用户名
        /// </summary>
        public static string UserName
        {
            get
            {
                char[] DelimiterChars ={ ';' };
                string[] SplitStr = strConn.Split(DelimiterChars);
                foreach (string TempStr in SplitStr)
                {
                    if (TempStr.Substring(0, 4) == "uid=")
                        return TempStr.Substring(TempStr.IndexOf("=") + 1);
                }
                return "";
            }
        }
        /// <summary>
        /// 数据库用户密码
        /// </summary>
        public static string UserPW
        {
            get
            {
                char[] DelimiterChars ={ ';' };
                string[] SplitStr = strConn.Split(DelimiterChars);
                foreach (string TempStr in SplitStr)
                {
                    if (TempStr.Substring(0, 4) == "pwd=")
                        return TempStr.Substring(TempStr.IndexOf("=") + 1);
                }
                return "";
            }
        }
    }
 
}

posted @ 2007-03-10 11:34  '.Elvis.'  阅读(249)  评论(0)    收藏  举报