数据库操作类
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 "";
}
}
}
}

浙公网安备 33010602011771号