想要一个操作access数据库的类,那位兄弟能提供一个,谢了!
解决方案 »
- 调查一下大家用的操作系统
- 高手进 急! 关于ACCESS
- C#.net 2005 中如何打开同项目中的窗体。
- 求 WinForm 三层架构方案实例
- 我在gridview的列中增加了一个select按钮,每次选择进行写入操作,可是总写2次
- 用VS2008写的网站。HTML页用JQUERY的AJAX访问ASPX页面。发布到IIS后不执行访问
- 线程与委托具体是什么意思?如何使用?
- C#.NET 2005 的水晶报表10.0 的 打包发布问题
- schtasks 添加任务计划, WIN2003, 域
- 一个数据库更新问题,请解决!!!
- SQL Server2000 产生1069错误是什么原因?
- 运行webApplication时报错:没有启动集成windows身份验证
//
//
// (DBOperator.cs) .Net男孩社区论坛系统-数据库操作类 www.aspxboy.com/forum
// Created: 2003-9-25
//
////////////////////////////////////////////////////////////////////////using System;
using System.Text;
using System.Data;
using System.Web;
using System.Data.OleDb;
using System.Configuration;namespace AspxBoy.Com.Forum
{ /// <summary>
/// 定义通用数据库操作类DBOperator,各方法,属性均为静态。
/// </summary>
# region 通用函数、方法等
public class DBOperator
{
# region 数据库连接字myConnString
public static string myConnString
{
get
{
StringBuilder str= new StringBuilder(ConfigurationSettings.AppSettings["Provider"]);
str.Append("; ");
str.Append("Data Source = ");
str.Append(HttpContext.Current.Server.MapPath("."));
str.Append("\\");
str.Append(ConfigurationSettings.AppSettings["ForumDataSource"]);
return str.ToString();
}
}
#endregion
public static OleDbConnection myConn = new OleDbConnection(myConnString);
# region 方法:CreatConnection()创建并且打开一个数据库连接,无返回值
public static OleDbConnection CreatConnection()
{
if( myConn == null )
myConn = new OleDbConnection(myConnString);
myConn.Open();
return myConn;
}
#endregion # region 方法: QueryDB(string)通过一个SQL语句查询数据库,返回一个DataTable
public static DataTable QueryDB(string mySelectText)
{
OleDbConnection myConnection = CreatConnection();
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(mySelectText, myConnString);
try
{
da.Fill(dt);
}
catch
{
}
finally
{
myConnection.Close() ;
}
return dt;
}
#endregion # region 方法:UpdateDB(string)通过一个SQL语句操作数据库,返回int型
public static int UpdateDB(string myUpdateText)
{
// 更新数据库
OleDbConnection myConnection = CreatConnection() ;
OleDbCommand myCommand = new OleDbCommand(myUpdateText,myConnection) ;
int i = 0;
try
{
i = myCommand.ExecuteNonQuery() ;
}
catch
{
}
finally
{
myCommand.Connection.Close() ;
}
return i ;
}
#endregion # region 方法:exeSql(string)通过一个SQL语句查执行操作,返回int型
public static int exeSql(string strSql)
{
OleDbConnection myConnection=CreatConnection();
OleDbCommand myCommand=new OleDbCommand(strSql,myConnection);
int i=0;
try
{
i = myCommand.ExecuteNonQuery();
}
catch
{
}
finally
{
myCommand.Connection.Close() ;
}
return i;
}
#endregion # region 方法:exeSql(string,string[], object[])通过SQL语句,和参数配合执行操作,返回int型
public static int exeSql(string strSql,string[] strParams,params object[] strValues)
{
OleDbConnection myConnection=CreatConnection();
OleDbCommand myCommand=new OleDbCommand(strSql,myConnection);
int intResult=0;
if(strParams!=null)
{
for(int i=0;i<strParams.Length;i++)
{
myCommand.Parameters.Add(new OleDbParameter(strParams[i],strValues[i]));
}
try
{
intResult=myCommand.ExecuteNonQuery();
}
catch
{
}
finally
{
myCommand.Connection.Close() ;
}
}
return intResult;
}
#endregion #region 方法:GetSingleValue(string)通过SQL语句配合参数查询并返回int
public static int GetSingleValue(string mySelectText,string[] strParams,params object[] strValues)
{
OleDbConnection myConnection = CreatConnection();
OleDbCommand myCommand = new OleDbCommand(mySelectText,myConnection);
int intResult=0 ;
if(strParams!=null)
{
for(int i=0;i<strParams.Length;i++)
{
myCommand.Parameters.Add(new OleDbParameter(strParams[i],strValues[i]));
}
try
{
intResult = int.Parse(myCommand.ExecuteScalar().ToString()) ;
}
catch
{
}
finally
{
myCommand.Connection.Close() ;
}
}
return intResult;
}
#endregion #region 方法:GetOneFiled(string)通过一个SQL语句查询并返回单个字段object型
public static object GetOneFiled(string mySelectText,string FiledName)
{
OleDbConnection myConnection = CreatConnection();
OleDbCommand myCommand = new OleDbCommand(mySelectText,myConnection) ;
object obj=null;
try
{
OleDbDataReader Rd=myCommand.ExecuteReader(System.Data.CommandBehavior.SingleRow);
if(Rd.Read())
{
obj=Rd[FiledName];
}
else
{
obj=null;
}
Rd.Close();
}
catch
{
}
finally
{
myCommand.Connection.Close() ;
}
return obj;
}
# endregion # region 方法:GetSomeFiled(string,string[],string[], object[],string) 通过SQL语句,和参数配合执行操作
public static object[] GetSomeFiled(string mySelectText,string[] strFiled,string[] strParams,object[] strValues)
{
OleDbConnection myConnection = CreatConnection();
OleDbCommand myCommand = new OleDbCommand(mySelectText,myConnection);
object[] obj =new object[10];
if(strParams!=null)
{
for(int i=0;i<strParams.Length;i++)
{
myCommand.Parameters.Add(new OleDbParameter(strParams[i],strValues[i]));
}
try
{
for(int i=0;i<strFiled.Length;i++)
{
OleDbDataReader Rd=myCommand.ExecuteReader();
if(Rd.Read())
obj[i]=Rd[strFiled[i]];
Rd.Close();
}
}
catch
{
}
finally
{
myCommand.Connection.Close() ;
}
}
return obj;
}
#endregion # region 事务处理:exeTrans(string[])通过一个SQL语句数组操作数据库,返回一个整形数组int[]
public static int[] exeTrans( string[] arr )
{
string str = "" ;
int[] return_arr = new int[ arr.Length ] ;
OleDbConnection myConnection = CreatConnection();
OleDbTransaction myTrans = myConnection.BeginTransaction();
OleDbCommand myCommand = new OleDbCommand();
myCommand.Transaction = myTrans;
myCommand.Connection = myConnection;
try
{ //提交事务
for( int i = 0 ; i < arr.Length ; i++ )
{
if( arr[i] == null || arr[i].Trim() == "" )
continue ;
myCommand.CommandText = arr[i] ;
return_arr[i] = myCommand.ExecuteNonQuery();
}
myTrans.Commit();
}
catch( Exception ep )
{
//有异常则回滚事务
str = ep.Message ;
myTrans.Rollback();
for( int i = 0 ; i < arr.Length ; i++ )
return_arr[i] = -1 ;
}
finally
{
myCommand.Connection.Close() ;
}
return return_arr;
}
#endregion
}
# endregion
}
主要改动的地方在于连接方式,以及DataReader的调用
里面有个SQLHelper的类,你把所有的Sql替换成OleDb ,然后把几个关于 XmlReader的方法注释掉就可以了
添加using System.Web;