最近做项目,写了一个类,用起来还挺方便的,拿出来分享一下,这个是用来操作access数据库类
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
namespace OdbcHelpe
{
/// <summary>
/// 访问数据库
/// </summary>
public class OdbcHelper
{
protected string conStr;
//给一个默认连接方式
/// <summary>
/// 默认的连接方式是连接到配置文件中connectionStrings下面的,name为connectionStr的连接字符串中
/// </summary>
public OdbcHelper()
{
this.conStr = ConfigurationManager.ConnectionStrings["connectionStr"].ConnectionString.ToString();
}
/// <summary>
/// conStr为连接字符串
/// </summary>
/// <param name="conStr"></param>
public OdbcHelper(string conStr)
{
this.conStr = conStr;
}
/// <summary>
/// 创建数据库的连接实例
/// </summary>
/// <param name="conStr"></param>
/// <returns></returns>
public OleDbConnection ConOpen(string conStr)
{
OleDbConnection con;
try
{
con = new OleDbConnection(conStr);
return con;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return null;
}
}
/// <summary>
/// 关闭数据库连接
/// </summary>
/// <param name="con"></param>
public void ConClose(OleDbConnection con)
{
con.Close();
}
/// <summary>
/// 执行查询,并且返回dataset对象
/// </summary>
/// <param name="query"></param>
/// <param name="con"></param>
/// <returns></returns>
public DataSet ExcuteQuery(string query)
{
DataSet data = new DataSet();
using (OleDbConnection con = ConOpen(conStr))
{
using (OleDbCommand cmd = new OleDbCommand(query, con))
{
con.Open();
//OleDbDataReader read=cmd.ExecuteReader();
//OdbcDataReader reader= cmd.ExecuteReader();
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
{
try
{
adapter.Fill(data);
}
catch
{
return null;
}
}
}
}
return data;
}
/// <summary>
/// 执行查询,并且返回dataset对象
/// </summary>
/// <param name="query"></param>
/// <param name="con"></param>
/// <param name="parameter">查询字符串的参数数组</param>
/// <returns></returns>
public DataSet ExcuteQuery(string query, OleDbParameter []parameters)
{
DataSet data = new DataSet();
using (OleDbConnection con = ConOpen(conStr))
{
using (OleDbCommand cmd = new OleDbCommand(query, con))
{
con.Open();
//像查询语句添加参数
foreach (OleDbParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
//OdbcDataReader reader= cmd.ExecuteReader();
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
{
try
{
adapter.Fill(data);
}
catch
{
return null;
}
}
}
}
return data;
}
/// <summary>
/// 执行一个操作,返回受影响的行数,当返回-1表示出现异常
/// </summary>
/// <param name="query"></param>
/// <param name="con"></param>
/// <returns></returns>
public int ExcuteNoneQuery(string query)
{
int x =0;
using (OleDbConnection con = ConOpen(conStr))
{
using (OleDbCommand cmd = con.CreateCommand())
{
cmd.CommandText = query;
try
{
con.Open();
x = cmd.ExecuteNonQuery();
}
catch
{
return -1;
}
}
}
return x;
}
/// <summary>
/// 参数化无返回查询,返回值为影响行数,出现错误,返回-1
/// </summary>
/// <param name="query"></param>
/// <param name="con"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public int ExcuteNoneQuery(string query, OleDbParameter[] parameters)
{
int data = 0;
using (OleDbConnection con = ConOpen(conStr))
{
using (OleDbCommand cmd = new OleDbCommand(query, con))
{
try
{
con.Open();
//像查询语句添加参数
foreach (OleDbParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
data = cmd.ExecuteNonQuery();
}
catch
{
return -1;
}
}
}
return data;
}
}
}