您的位置:首页 > 数据库

c# 连接ACCESS数据库

2015-09-28 19:41 369 查看
C#连接Access2003 2007数据库手记Access2003保存的数据库文件格式为.mdb,Access 2007数据库保存的数据库文件格式为.accdb。总体来说用C#下用ado连接两者的代码几乎是一样的,唯一的区别就是连接字符串中Provider字段不一样。 例如:mdb:Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Users\\xiaxia\\Desktop\\temp\\Database1.mdbaccdb:Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\\Users\\xiaxia\\Desktop\\temp\\haha.accdb

using System.Data.OleDb;
public partial class Form3 : Form
{
OleDbConnection objConnextion;
// DataSet ds;
int vRec;

public Form3()
{
InitializeComponent();
}

private void Form3_Load(object sender, EventArgs e)
{

}

private void linkdb()
{
string strConnection = "Provider = Microsoft.Jet.Oledb.4.0;Data Source = yg606g_result.mdb";
objConnextion = new OleDbConnection(strConnection);
objConnextion.Open();
}

private void button1_Click(object sender, EventArgs e)
{
linkdb();
string sql = "select * from result";
OleDbDataAdapter myda = new OleDbDataAdapter(sql, objConnextion);
DataSet myds = new DataSet();
vRec = myda.Fill(myds, "result");
dataGridView1.DataSource = myds.Tables ["result"];
}
}

另外一种更为严谨的:

private void linkdb()
{
string ConStr = string.Format(@"Provider=Microsoft.Jet.OLEdb.4.0;Data Source = {0}\yg606g_result.mdb",
Application.StartupPath);
OleDbConnection oleCon = new OleDbConnection(ConStr);
OleDbDataAdapter oleDap = new OleDbDataAdapter("select * from Result", oleCon);
DataSet ds = new DataSet();
oleDap.Fill(ds, "result");
//this.dataGridView1.DataSource = ds.Tables["result"];//this method is good!
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
oleCon.Close();
oleCon.Dispose();
}


另外一种可供参考:

using System.Data;
using System.Data.OleDb;
private OleDbConnection con;
/// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="DBpath">数据库路径(包括数据库名)</param>
private void Open(String DBpath)
{
if(con == null)
con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBpath);
if (con.State == ConnectionState.Closed)
con.Open();
}

/// <summary>
/// 创建一个命令对象并返回该对象
/// </summary>
/// <param name="sqlStr">数据库语句</param>
/// <param name="file">数据库所在路径</param>
/// <returns>OleDbCommand</returns>
private OleDbCommand CreateCommand(string sqlStr, string file)
{
Open(file);
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlStr;
cmd.Connection = con;
return cmd;
}
/// <summary>
/// 执行
/// </summary>
/// <param name="sqlStr">SQL语句</param>
/// <param name="file">数据库所在路径</param>
/// <returns>返回数值当执行成功时候返回true,失败则返回false</returns>
public bool ExecuteNonQury(string sqlStr, string file)
{
OleDbCommand cmd = CreateCommand(sqlStr, file);
int result = cmd.ExecuteNonQuery();
if (result == -1 | result == 0)
{
cmd.Dispose();
Close();
return false;
}
else
{
cmd.Dispose();
Close();
return true;
}
/// <summary>
/// 执行数据库查询
/// </summary>
/// <param name="sqlStr">查询语句</param>
/// <param name="tableName">填充数据集表格的名称</param>
/// <param name="file">数据库所在路径</param>
/// <returns>查询的数据集</returns>
public DataSet GetDataSet(string sqlStr, string file)
{
DataSet ds = new DataSet();
OleDbCommand cmd = CreateCommand(sqlStr, file);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd);
dataAdapter.Fill(ds);
cmd.Dispose();
Close();
dataAdapter.Dispose();
return ds;
}
/// <summary>
/// 生成一个数据读取器OleDbDataReader并返回该OleDbDataReader
/// </summary>
/// <param name="sqlStr">数据库查询语句</param>
/// <returns>返回一个DataReader对象</returns>
public OleDbDataReader GetReader(string sqlStr, string file)
{
OleDbCommand cmd = CreateCommand(sqlStr, file);
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来
//当关闭DataReader对象时候也自动关闭链接
return reader;
}

/// <summary>
/// 关闭数据库
/// </summary>
public void Close()
{
if (con != null)
con.Close();
con = null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: