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

