.net三層結(jié)構(gòu)初探分析第3/4頁
更新時間:2008年09月08日 20:42:54 作者:
最近開始對架構(gòu)開始了研究,當(dāng)然由于水平不夠,先研究了“簡單的三層結(jié)構(gòu)”,至于“抽象工廠模式”放后面來研究吧!
下面貼出相關(guān)代碼:
web.config
<appSettings>
<add key="ConnectionString" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|data.mdb" />
</appSettings>
DBUtility--PubConstant.cs(連接字符串)
復(fù)制代碼 代碼如下:
using System;
using System.Configuration;
namespace MyCms.DBUtility
{
public class PubConstant
{
public static string ConnectionString
{
get
{
return ConfigurationSettings.AppSettings["ConnectionString"];
}
}
}
}
DBUtility--DbHelperOleDb.cs(數(shù)據(jù)基類SQL語句)
復(fù)制代碼 代碼如下:
using System;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace MyCms.DBUtility
{
//數(shù)據(jù)訪問基類(基于OleDb)
public partial class DbHelperOleDb
{
//數(shù)據(jù)庫連接字符串,在web.config中配置
public static string ConnectionString = PubConstant.ConnectionString;
public DbHelperOleDb()
{
}
/// <summary>
/// 執(zhí)行SQL語句,返回影響的記錄數(shù)
/// </summary>
/// <param name="strSql">SQL語句</param>
/// <returns>影響的記錄數(shù)</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>
/// 執(zhí)行多條SQL語句,實現(xiàn)數(shù)據(jù)庫事務(wù)
/// </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>
/// 執(zhí)行帶一個存儲過程參數(shù)的SQL語句
/// </summary>
/// <param name="strSql">SQL語句</param>
/// <param name="content">參數(shù)內(nèi)容,比如一個字段是格式復(fù)雜的文章</param>
/// <returns>影響的記錄數(shù)</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>
/// 執(zhí)行一條計算查詢結(jié)果語句,返回查詢結(jié)果
/// </summary>
/// <param name="strSql">SQL語句</param>
/// <returns>查詢結(jié)果</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>
/// 執(zhí)行查詢語句,返回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;
}
}
}
}
相關(guān)文章
ASP.NET?Core?MVC中Form?Tag?Helpers用法介紹
這篇文章介紹了ASP.NET?Core?MVC中Form?Tag?Helpers的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
ASP.NET中防止頁面刷新造成表單重復(fù)提交執(zhí)行兩次操作
本文主要介紹在Session存儲唯一標(biāo)識Token,通過和后臺對比,以實現(xiàn)防止刷新提交表單的問題。2016-04-04
asp.net Web Services上傳和下載文件(完整代碼)
隨著Internet技術(shù)的發(fā)展和跨平臺需求的日益增加,Web Services的應(yīng)用越來越廣,我們不但需要通過Web Services傳遞字符串信息,而且需要傳遞二進(jìn)制文件信息。2008-12-12
使用.NET?6開發(fā)TodoList應(yīng)用之領(lǐng)域?qū)嶓w創(chuàng)建原理和思路
雖然TodoList是一個很簡單的應(yīng)用,業(yè)務(wù)邏輯并不復(fù)雜,至少在這個系列文章中我并不想使其過度復(fù)雜,接下來通過本文給大家介紹使用.NET?6開發(fā)TodoList應(yīng)用之領(lǐng)域?qū)嶓w創(chuàng)建思路及原理,需要的朋友可以參考下2021-12-12
asp.net下使用jQuery.AutoComplete完成仿淘寶商品搜索自動完成功能(改進(jìn)了鍵盤上下選擇體驗)
其實這個已經(jīng)是個比較常見的功能了,網(wǎng)上也有很多人做過這個了,但是很多都是僅僅做了一些基本的網(wǎng)頁上自動完成功能,沒有與具體的數(shù)據(jù)庫進(jìn)行聯(lián)動,我今天所介紹這個自動完成的就是我修改的jQuery.AutoComplete+數(shù)據(jù)庫的一個解決方案。2010-05-05

