.net三层结构初探分析第3/4页
更新时间:2008年09月08日 20:42:54 作者:
最近开始对架构开始了研究,当然由于水平不够,先研究了“简单的三层结构”,至于“抽象工厂模式”放后面来研究吧!
下面贴出相关代码:
web.config
<appSettings>
<add key="ConnectionString" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|data.mdb" />
</appSettings>
DBUtility--PubConstant.cs(连接字符串)
复制代码 代码如下:
using System;
using System.Configuration;
namespace MyCms.DBUtility
{
public class PubConstant
{
public static string ConnectionString
{
get
{
return ConfigurationSettings.AppSettings["ConnectionString"];
}
}
}
}
DBUtility--DbHelperOleDb.cs(数据基类SQL语句)
复制代码 代码如下:
using System;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace MyCms.DBUtility
{
//数据访问基类(基于OleDb)
public partial class DbHelperOleDb
{
//数据库连接字符串,在web.config中配置
public static string ConnectionString = PubConstant.ConnectionString;
public DbHelperOleDb()
{
}
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string strSql)
{
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
using (OleDbCommand cmd = new OleDbCommand(strSql, conn))
{
try
{
conn.Open();
return cmd.ExecuteNonQuery();
}
catch(OleDbException E)
{
conn.Close();
throw new Exception(E.Message);
}
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务
/// </summary>
/// <param name="SqlStrList">多条SQL语句</param>
public static void ExecuteSqlTran(ArrayList SqlStrList)
{
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
OleDbTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SqlStrList.Count; n++)
{
string strSql = SqlStrList[n].ToString();
if (strSql.Trim().Length > 1)
{
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
/// <summary>
/// 执行带一个存储过程参数的SQL语句
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSinglePro(string strSql, string content)
{
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
OleDbCommand cmd = new OleDbCommand(strSql, conn);
OleDbParameter myParameter = new OleDbParameter("@content",OleDbType.VarChar);
myParameter.Value = content;
cmd.Parameters.Add(myParameter);
try
{
conn.Open();
return cmd.ExecuteNonQuery();
}
catch (OleDbException E)
{
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
conn.Close();
}
}
}
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <returns>查询结果</returns>
public static object GetSingle(string strSql)
{
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
using (OleDbCommand cmd = new OleDbCommand(strSql, conn))
{
try
{
conn.Open();
object obj = cmd.ExecuteScalar();
if ((Equals(obj, null)) || Equals(obj, DBNull.Value))
{
return null;
}
else
{
return obj;
}
}
catch (OleDbException E)
{
conn.Close();
throw new Exception(E.Message);
}
}
}
}
/// <summary>
/// 返回OleDbDataReader
/// </summary>
/// <param name="strSql">查询语句</param>
/// <returns>OleDbDataReader</returns>
public static OleDbDataReader ExecuteReader(string strSql)
{
OleDbDataReader dr = null;
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
using(OleDbCommand cmd = new OleDbCommand(strSql,conn))
{
try
{
conn.Open();
cmd.CommandText = strSql;
cmd.CommandType = CommandType.Text;
dr = cmd.ExecuteReader();
}
catch
{
dr.Close();
conn.Close();
cmd.Dispose();
}
}
}
return dr;
}
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="strSql">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string strSql)
{
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
DataSet ds = new DataSet();
try
{
conn.Close();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
da.Fill(ds, "ds");
}
catch (OleDbException E)
{
throw new Exception(E.Message);
}
return ds;
}
}
}
}
相关文章
ASP.NET Core MVC中Form Tag Helpers用法介绍
这篇文章介绍了ASP.NET Core MVC中Form Tag Helpers的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-02-02
asp.net Web Services上传和下载文件(完整代码)
随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。2008-12-12
使用.NET 6开发TodoList应用之领域实体创建原理和思路
虽然TodoList是一个很简单的应用,业务逻辑并不复杂,至少在这个系列文章中我并不想使其过度复杂,接下来通过本文给大家介绍使用.NET 6开发TodoList应用之领域实体创建思路及原理,需要的朋友可以参考下2021-12-12
asp.net下使用jQuery.AutoComplete完成仿淘宝商品搜索自动完成功能(改进了键盘上下选择体验)
其实这个已经是个比较常见的功能了,网上也有很多人做过这个了,但是很多都是仅仅做了一些基本的网页上自动完成功能,没有与具体的数据库进行联动,我今天所介绍这个自动完成的就是我修改的jQuery.AutoComplete+数据库的一个解决方案。2010-05-05


最新评论