关键代码:
usingSystem;usingSystem.Data;usingSystem.Data.OleDb;namespaceCSharpUtilHelpV2
{/// <summary>/// 基于.NET 2.0的access数据简单操作类/// </summary>publicclassAccessUtilsV2
{stringConnectString =string.Empty;/// <summary>/// 构造函数/// </summary>/// <param name="path">access路径</param>publicAccessUtilsV2(stringpath)
{
ConnectString ="PRovider=Microsoft.Jet.OLEDB.4.0;Data Source="+ path;
}/// <summary>/// 构造函数/// </summary>/// <param name="path">access路径</param>/// <param name="passWord">access密码</param>publicAccessUtilsV2(stringpath,stringpassword)
{
ConnectString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ path +";Jet OLEDB:Database Password= "+ password;
}/// <summary>/// ExecuteNonQuery/// </summary>/// <param name="sql">查询,修改,删除sql语句</param>/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>/// <returns>操作影响行数</returns>publicintExecuteNonQuery(stringsql, OleDbParameter[] parameters)
{int_affectedRows = -1;using(OleDbConnection sqlcon =newOleDbConnection(ConnectString))
{
sqlcon.Open();using(OleDbCommand sqlcmd =newOleDbCommand(sql, sqlcon))
{if(parameters !=null)
sqlcmd.Parameters.AddRange(parameters);
_affectedRows = sqlcmd.ExecuteNonQuery();
}
}return_affectedRows;
}/// <summary>/// ExecuteReader/// </summary>/// <param name="sql">读取sql语句</param>/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>/// <returns>IDataReader</returns>publicIDataReader ExecuteReader(stringsql, OleDbParameter[] parameters)
{
OleDbConnection _sqlcon =newOleDbConnection(ConnectString);using(OleDbCommand _sqlcmd =newOleDbCommand(sql, _sqlcon))
{if(parameters !=null)
_sqlcmd.Parameters.AddRange(parameters);
_sqlcon.Open();return_sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}/// <summary>/// ExecuteDataTable/// </summary>/// <param name="sql">读取sql语句</param>/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>/// <returns>DataTable</returns>publicDataTable ExecuteDataTable(stringsql, OleDbParameter[] parameters)
{using(OleDbConnection _sqlcon =newOleDbConnection(ConnectString))
{using(OleDbCommand _sqlcmd =newOleDbCommand(sql, _sqlcon))
{if(parameters !=null)
_sqlcmd.Parameters.AddRange(parameters);using(OleDbDataAdapter _sqldap =newOleDbDataAdapter(_sqlcmd))
{
DataTable _dt =newDataTable();
_sqldap.Fill(_dt);return_dt;
}
}
}
}/// <summary>/// ExecuteScalar/// </summary>/// <param name="sql">查询第一行第一列数据值</param>/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>/// <returns>Object</returns>publicObject ExecuteScalar(stringsql, OleDbParameter[] parameters)
{using(OleDbConnection _sqlcon =newOleDbConnection(ConnectString))
{using(OleDbCommand _sqlcmd =newOleDbCommand(sql, _sqlcon))
{if(parameters !=null)
_sqlcmd.Parameters.AddRange(parameters);
_sqlcon.Open();return_sqlcmd.ExecuteScalar();
}
}
}
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp{ background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }测试代码:
usingCSharpUtilHelpV2;usingSystem;usingSystem.Data;usingSystem.Data.OleDb;usingSystem.IO;namespaceCSharpUtilHelpV2Test
{publicclassAccessUtilsV2Test
{staticAccessUtilsV2 AccessHelper =newAccessUtilsV2(string.Format(@"{0}\DB\Northwind.MDB", AppDomain.CurrentDomain.BaseDirectory.ToString()));publicstaticvoidShowAccessPath()
{string_fullPath =string.Format(@"{0}\DB\Northwind.MDB", AppDomain.CurrentDomain.BaseDirectory.ToString());
Console.WriteLine(_fullPath);
Console.WriteLine("File.Exist:"+ File.Exists(_fullPath));
}publicstaticvoidExecuteNonQueryTest()
{//-------------------------方式一---------------------------------------//string _sql = "INSERT INTO Categories (CategoryID, CategoryName, Description) VALUES (22, 'Test', '测试')";//Console.WriteLine("ExecuteNonQueryTest:" + AccessHelper.ExecuteNonQuery(_sql, null));//-------------------------方式二---------------------------------------string_sql ="INSERT INTO Categories (CategoryID, CategoryName, Description) VALUES (@id, @categoryName, @description)";
OleDbParameter[] _paramter =newOleDbParameter[] {newOleDbParameter("@id",23),newOleDbParameter("@categoryName","Test2"),newOleDbParameter("@description","测试2")
};
Console.WriteLine("ExecuteNonQueryTest:"+ AccessHelper.ExecuteNonQuery(_sql, _paramter));
}publicstaticvoidExecuteReaderTest()
{string_sql ="select * from Categories where CategoryID<=5";using(IDataReader reader = AccessHelper.ExecuteReader(_sql,null))
{while(reader.Read())
{
Console.WriteLine("CategoryID:"+ reader["CategoryID"] +" CategoryName:"+ reader["CategoryName"]);
}
}
}publicstaticvoidExecuteDataTableTest()
{string_sql ="select * from Categories where CategoryID<=5";
Console.WriteLine("ExecuteDataTableTest:"+ AccessHelper.ExecuteDataTable(_sql,null).Rows.Count);
}publicstaticvoidExecuteScalarTest()
{string_sql ="select * from Categories where CategoryID<=5";
Console.WriteLine("ExecuteScalarTest:"+ AccessHelper.ExecuteScalar(_sql,null) ??"Null");
}
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }测试结果:
这里是对Access操作的简单封装,希望有所帮助!
本人才疏学浅,难免错误,敬请指出,谢谢!