为提高程序效率计,类中所有方法均为静态方法。
oledb驱动,支持事务处理。引类抛砖引玉,不足之处大师们多多指教。
OleDbAccess.cs原码如下:

/**//*
*@Sban2006-12
*Access数据库Oldb操作类
*/
usingSystem;
usingSystem.Data;
usingSystem.Data.OleDb;
namespaceSban
......{
publicstaticclassOleDbAccess
......{
/**//**//**////<summary>
///取得数据库连接
///</summary>
///<paramname="connectionString"></param>
///<returns></returns>
publicstaticOleDbConnectionGetConnection(stringconnectionString)
......{
OleDbConnectionconn=newOleDbConnection(connectionString);
try
......{
conn.Open();
}
catch(Exceptione)
......{
thrownewException("数据库连接字符串可能有问题!",e);
}
returnconn;
}
/**//**//**////<summary>
///
///</summary>
///<paramname="param"></param>
///<returns></returns>
publicstaticstringFiltArg(refstringparam)
......{
param=System.Web.HttpUtility.HtmlEncode(param);
param=param.Replace("'","‘").Replace(""","“");
returnparam;
}
/**//**//**////<summary>
///获得oledb连接字符串
///</summary>
///<paramname="dataBasePath"></param>
///<returns></returns>
publicstaticstringGetConnectionString(stringdataBasePath)
......{
return"PROVIDER=Microsoft.Jet.OLEDB.4.0;DATASource="+dataBasePath;
}

/**//**//**////<summary>
///
///</summary>
///<paramname="conn"></param>
///<returns></returns>
publicstaticOleDbCommandGetCommand(refOleDbConnectionconn)
......{
returnconn.CreateCommand();
}

/**//**//**////<summary>
///starttransactionandreturn
///</summary>
///<paramname="conn"></param>
///<paramname="cmd"></param>
///<returns></returns>
publicstaticOleDbTransactionStartTrans(refOleDbConnectionconn,refOleDbCommandcmd)
......{
returncmd.Transaction=conn.BeginTransaction();
}
publicstaticvoidRollTrans(refOleDbTransactiontrans)
......{
trans.Rollback();
}
publicstaticvoidCommitTrans(refOleDbTransactiontrans)
......{
trans.Commit();
}

/**//**//**////<summary>
///
///</summary>
///<paramname="cmd"></param>
///<paramname="query"></param>
///<paramname="param"></param>
publicstaticvoidExecuteNonQuery(refOleDbCommandcmd,stringquery,paramsOleDbParameter[]param)
......{
cmd.CommandType=CommandType.Text;
cmd.CommandText=query;
cmd.Parameters.Clear();
if(null!=param)
cmd.Parameters.AddRange(param);
try
......{
cmd.ExecuteNonQuery();
}
catch(Exceptione)
......{
thrownewException("ExecuteNonQuery:执行数据库操作时出现问题!",e);
}
}

/**//**//**////<summary>
///
///</summary>
///<paramname="conn"></param>
///<paramname="cmd"></param>
publicstaticvoidDispose(refOleDbConnectionconn,refOleDbCommandcmd)
......{
try
......{
conn.Close();
cmd.Dispose();
conn.Dispose();
}
catch
......{
//thrownewException("执行数据库对象清除可能有问题!",e);
}
}

/**//**//**////<summary>
///GetParametersarray
///</summary>
///<paramname="arr"></param>
///<returns></returns>
publicstaticOleDbParameter[]GetParameters(paramsobject[]arr)
......{
OleDbParameter[]paramArray=newOleDbParameter[arr.Length];
object[]o;
for(intj=0;j<arr.Length;j++)
......{
o=(object[])arr[j];
paramArray[j]=GetParameter(o);
}
returnparamArray;
}

/**//**//**////<summary>
///GetParameter
///</summary>
///<paramname="arr"></param>
///<returns></returns>
publicstaticOleDbParameterGetParameter(paramsobject[]arr)
......{
OleDbParameterparam=newOleDbParameter(arr[0].ToString(),arr[1]);
if(arr.Length>2)
param.OleDbType=(OleDbType)arr[2];
if(arr.Length>3)
param.Size=Convert.ToInt32(arr[3]);
returnparam;
}

/**//**//**////<summary>
///executequeryandreturndataset.
///</summary>
///<paramname="cmd"></param>
///<paramname="query"></param>
///<paramname="param"></param>
///<returns></returns>
publicstaticOleDbDataReaderExecuteReader(refOleDbCommandcmd,stringquery,paramsOleDbParameter[]param)
......{
OleDbDataReaderdr=null;
cmd.CommandType=CommandType.Text;
cmd.CommandText=query;
cmd.Parameters.Clear();
if(null!=param)
cmd.Parameters.AddRange(param);
try
......{
dr=cmd.ExecuteReader();
}
catch(Exceptione)
......{
thrownewException("ExecuteReader:执行数据库操作时出现问题!",e);
}
returndr;
}

/**//**//**////<summary>
///
9033

被折叠的 条评论
为什么被折叠?



