dal資料庫
① c#中三層架構的Framework(DAL)層與資料庫連接的代碼是什麼
強烈建議使用微軟
企業庫
,而不要用什麼
sqlHelper
之類的東東,在引用了Microsoft.Practices.EnterpriseLibrary.Data.dll和Microsoft.Practices.EnterpriseLibrary.Common.dll後,在
webconfig
裡面配置節點
資料庫連接配置
然後在代碼里使用
//創建Database對象
Database
db
=
DatabaseFactory.
CreateDatabase
();
//創建DbCommand對象
DbCommand
dbCommand
=
db.GetStoredProcCommand("UP_APKeyHistory_Query");
//添加輸入輸出參數
db.AddInParameter(dbCommand,
"@APID",
DbType.String,
apq.APID);
db.AddInParameter(dbCommand,
"@CommunicationKey",
DbType.String,
apq.CommunicationKey);
db.AddInParameter(dbCommand,
"@MaxEffectiveTime",
DbType.DateTime,
apq.MaxEffectiveTime);
db.AddInParameter(dbCommand,
"@MinEffectiveTime",
DbType.DateTime,
apq.MinEffectiveTime);
db.AddInParameter(dbCommand,
"@MaxExpiredTime",
DbType.String,
apq.MaxExpiredTime);
db.AddInParameter(dbCommand,
"@MinExpiredTime",
DbType.String,
apq.MinExpiredTime);
db.AddInParameter(dbCommand,
"@KeyStatus",
DbType.String,
apq.KeyStatus);
List
APKeyList
=
new
List
();
//執行命令返回DataReader對象
using
(IDataReader
dr
=
db.ExecuteReader(dbCommand))
{
while
(dr.Read())
{
APKeyList.Add(CreateAPKeyHistoryInfo(dr));
}
}
return
APKeyList;
② 問下,既然DAL層是用來出來資料庫的,那麼為什麼還要DBUtility這個層呢2個有什麼區別
個人理解
DBUtility: 各種實用資料庫操作
bll :處理實際的業務發生時候的邏輯。
dal: 數據訪問層
common :沒架構過
model:業務處理的對象。資料庫的一個緩沖區?
dal只是處理資料庫的訪問,打開連接,關閉連接等,DBUtility則是處理資料庫的增刪查改那些操作,如果小規模開發這兩層可以放在一起
③ dal的特點
三層結構為:
1.表示層(USL):主要表示WEB方式,也可以表示成WINFORM方式。如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務。
2.業務邏輯層(BLL):主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理。如果說數據層是積木,那邏輯層就是對這些積木的搭建。
3.數據訪問層(DAL):主要是對原始數據(資料庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據的操作,而不是資料庫,具體為業務邏輯層或表示層提供數據服務。
④ ASP.NET三層架構DAL層連接資料庫的方法
假設資料庫連接字元串在web.config里配置如下
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=Database;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
對你的DAL項目右鍵添加System.Configuration引用(必須步驟),
添加Model項目引用
然後在DB類(假設為UserDAL.cs)
using System.Configuration;//這個必須.
using Model那個項目
public class UserDAL
{
public const string ConnectionString = ConfigurationManager.ConnectionStrings [ "ConnectionString" ].ConnectionString;
public int Insert(UserInfo user)// Model
{
SqlConnection sqlcon=new SqlConnection ( ConnectionString );
.................
}
}
BLL
添加DB和Model項目引用
using 那個DB
public class UserBLL
{
public int Insert(UserInfo user)
{
int i = UserDAL.Insert(user);
}
}
⑤ c#中三層架構的Framework(DAL)層與資料庫連接的代碼是什麼
強烈建議使用微軟企業庫,而不要用什麼SqlHelper之類的東東,在引用了Microsoft.Practices.EnterpriseLibrary.Data.dll和Microsoft.Practices.EnterpriseLibrary.Common.dll後,在webconfig裡面配置節點
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral" />
</configSections>
<!-- 資料庫連接配置 -->
<dataConfiguration defaultDatabase="KDSWDBConnection" />
<connectionStrings>
<add name="KDSWDBConnection" connectionString="server=10.192.56.112; user id=sa; password =sa; database =KDSW" providerName="System.Data.SqlClient" />
</connectionStrings>
然後在代碼里使用
//創建Database對象
Database db = DatabaseFactory.CreateDatabase();
//創建DbCommand對象
DbCommand dbCommand = db.GetStoredProcCommand("UP_APKeyHistory_Query");
//添加輸入輸出參數
db.AddInParameter(dbCommand, "@APID", DbType.String, apq.APID);
db.AddInParameter(dbCommand, "@CommunicationKey", DbType.String, apq.CommunicationKey);
db.AddInParameter(dbCommand, "@MaxEffectiveTime", DbType.DateTime, apq.MaxEffectiveTime);
db.AddInParameter(dbCommand, "@MinEffectiveTime", DbType.DateTime, apq.MinEffectiveTime);
db.AddInParameter(dbCommand, "@MaxExpiredTime", DbType.String, apq.MaxExpiredTime);
db.AddInParameter(dbCommand, "@MinExpiredTime", DbType.String, apq.MinExpiredTime);
db.AddInParameter(dbCommand, "@KeyStatus", DbType.String, apq.KeyStatus);
List<APKeyHistoryInfo> APKeyList = new List<APKeyHistoryInfo>();
//執行命令返回DataReader對象
using (IDataReader dr = db.ExecuteReader(dbCommand))
{
while (dr.Read())
{
APKeyList.Add(CreateAPKeyHistoryInfo(dr));
}
}
return APKeyList;
⑥ 三層架構中的DAL層屬於什麼它的工作是做什麼的
這個簡單,這是三層中的一層,它依賴於資料庫,DAL是數據訪問層,主要是寫一些資料庫連接操作的代碼!也就是操作資料庫用的!你說的IDAL這主要是定義介面,它們的聯系就是通過引用,使DAL去繼承IDAL實現介面!明白了么?
⑦ dal什麼意思
數據訪問層(DAL):主要是對原始數據(資料庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據的操作,而不是資料庫,具體為業務邏輯層或表示層提供數據服務。
⑧ DAL和BLL裡面分別寫什麼
DAL是數據連接層,寫sql語句,添刪改查方法,然後有返回值。BLL是業務邏輯層,這裡面不寫sql語句,可以調用DAL層傳過來的值做判斷分析,並返回相應的值。最後在頁面的隱藏代碼中調用BLL的方法
⑨ Asp.Net中,dal層db.cs只打開資料庫連接嗎從資料庫中取值應該寫在Db.cs中,還是Bll層里
三層體系架構1.表示層(USL):主要表示WEB方式,也可以表示成WINFORM方式。如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務。
2.業務邏輯層(BLL):主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理。如果說數據層是積木,那邏輯層就是對這些積木的搭建。
3.數據訪問層(DAL):主要是對原始數據(資料庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據的操作,而不是資料庫,具體為業務邏輯層或表示層提供數據服務
二、具體區分
1.表示層:主要對用戶的請求接受,以及數據的返回,為客戶端提供應用程序的訪問。
2.業務邏輯層:主要負責對數據層的操作,也就是說把一些數據層的操作進行組合。
3.數據訪問層:主要看你的數據層裡面有沒有包含邏輯處理,實際上他的各個函數主要完成各個對數據文件的操作,而不必管其他操作。
三、總結
三層結構是一種嚴格分層方法,即數據訪問層只能被業務邏輯層訪問,業務邏輯層只能被表示層訪問,用戶通過表示層將請求傳送給業務邏輯層,業務邏輯層完成相關業務規則和邏輯,並通過數據訪問層訪問資料庫獲得數據,然後按照相反的順序依次返回將數據顯示在表示層。有的三層結構還加了Factory、Model等其他層,實際都是在這三層基礎上的一種擴展和應用
⑩ DAL中如何獲取config裡面的資料庫連接欄位
添加引用:找到System.configuration 引用
//使用 "SQL"就是config中的name值
string sqlstr = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;
config配置
<connectionStrings>
<add name="SQL" connectionString="server=.\sqlexpress;database=DATA;uid=sa;pwd=sa"/>
</connectionStrings>