C#如何连接ACCESS数据库,并在里面去数据!!

2024-11-19 21:18:08
推荐回答(2个)
回答1:

using System.Data;
using System.Data.OleDb;
private OleDbConnection con;
///


/// 打开数据库连接
///

/// 数据库路径(包括数据库名)
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();
}

///
/// 创建一个命令对象并返回该对象
///

/// 数据库语句
/// 数据库所在路径
/// OleDbCommand
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;
}
///
/// 执行
///

/// SQL语句
/// 数据库所在路径
/// 返回数值当执行成功时候返回true,失败则返回false
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;
}
///
/// 执行数据库查询
///

/// 查询语句
/// 填充数据集表格的名称
/// 数据库所在路径
/// 查询的数据集
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;
}
///
/// 生成一个数据读取器OleDbDataReader并返回该OleDbDataReader
///

/// 数据库查询语句
/// 返回一个DataReader对象
public OleDbDataReader GetReader(string sqlStr, string file)
{
OleDbCommand cmd = CreateCommand(sqlStr, file);
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来
//当关闭DataReader对象时候也自动关闭链接
return reader;
}

///
/// 关闭数据库
///

public void Close()
{
if (con != null)
con.Close();
con = null;
}

传进来的路径是带上Access数据库名的

回答2:

using
System.Data;
using
System.Data.OleDb;
private
OleDbConnection
con;
///


///
打开数据库连接
///

///
name="DBpath">数据库路径(包括数据库名)
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();
}
///

///
创建一个命令对象并返回该对象
///

///
name="sqlStr">数据库语句
///
name="file">数据库所在路径
///
OleDbCommand
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;
}
///

///
执行
///

///
name="sqlStr">SQL语句
///
name="file">数据库所在路径
///
返回数值当执行成功时候返回true,失败则返回false
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;
}
///

///
执行数据库查询
///

///
name="sqlStr">查询语句
///
name="tableName">填充数据集表格的名称
///
name="file">数据库所在路径
///
查询的数据集
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;
}
///

///
生成一个数据读取器OleDbDataReader并返回该OleDbDataReader
///

///
name="sqlStr">数据库查询语句
///
返回一个DataReader对象
public
OleDbDataReader
GetReader(string
sqlStr,
string
file)
{
OleDbCommand
cmd
=
CreateCommand(sqlStr,
file);
OleDbDataReader
reader
=
cmd.ExecuteReader(CommandBehavior.CloseConnection);
//CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来
//当关闭DataReader对象时候也自动关闭链接
return
reader;
}
///

///
关闭数据库
///

public
void
Close()
{
if
(con
!=
null)
con.Close();
con
=
null;
}
传进来的路径是带上Access数据库名的