一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Enterprise Library 4.1學(xué)習(xí)筆記2----數(shù)據(jù)訪問程序塊 - 菩提樹下的楊過.Net - 博客園

 唐伯龍 2011-04-07

Enterprise Library 4.1學(xué)習(xí)筆記2----數(shù)據(jù)訪問程序塊

Data Access Application Block 其實(shí)個(gè)人感覺相當(dāng)于另一個(gè)版本的dbHelper

廢話不多說,先看下如何使用:

1.引用Microsoft.Practices.EnterpriseLibrary.Data.dll(EL安裝目錄下的bin中就有)

2.配置web.config

<configSections>
...
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral"/>
...

這一節(jié)是系統(tǒng)自動(dòng)加上去的,原來后面還有一截PublicKeyToken=....,不過在使用中發(fā)現(xiàn)系統(tǒng)總是報(bào)錯(cuò)無法加載EL程序集之類,所以到園子里搜索了下,參考前人的解決辦法去掉了這一段(可能是發(fā)行時(shí)版本不一致造成的)

此外還要添加連接字符串

<connectionStrings>
 <add name="Conn" connectionString="Data Source=.;Initial Catalog=Six;Persist Security Info=True;User ID=sa;Password=***" providerName="System.Data.SqlClient"/>
 <add name="Conn2" connectionString="Data Source=.;Initial Catalog=dbUser;Persist Security Info=True;User ID=sa;Password=***" providerName="System.Data.SqlClient"/>
</connectionStrings>
<dataConfiguration defaultDatabase="Conn"/>

這跟常規(guī)的web開發(fā)幾乎沒什么不同,要說明的是<dataConfiguration defaultDatabase="Conn"/>這一節(jié)標(biāo)明了默認(rèn)情況下使用哪個(gè)連接字符串

3.下面可以正式使用了,示例代碼:

using System;
using System.Data;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;

namespace test
{
    
public partial class _Default : System.Web.UI.Page
    {
        
protected void Page_Load(object sender, EventArgs e)
        {
            Database db 
= DatabaseFactory.CreateDatabase("Conn");

            
//查詢數(shù)據(jù)
            
//this.Repeater1.DataSource = db.ExecuteReader(CommandType.Text, "Select * from GoGo365");

            
//調(diào)用存儲(chǔ)過程(直接傳參數(shù)的簡(jiǎn)單調(diào)用)
            
//this.Repeater1.DataSource = db.ExecuteReader("up_test", "2");

            
//切換數(shù)據(jù)庫
            db = DatabaseFactory.CreateDatabase("Conn2");           

            
//帶輸出和返回參數(shù)的存儲(chǔ)過程調(diào)用
            DbCommand cmd = db.GetStoredProcCommand("up_Page2005");
            db.AddInParameter(cmd, 
"TableName", DbType.String, "T_User");
            db.AddInParameter(cmd, 
"Fields", DbType.String, "F_NickName");
            db.AddInParameter(cmd, 
"OrderField", DbType.String, "F_Id");
            db.AddInParameter(cmd, 
"sqlWhere", DbType.String, "F_Status=1");
            db.AddInParameter(cmd, 
"PageSize", DbType.Int16, 50);
            db.AddInParameter(cmd, 
"PageIndex", DbType.Int16, 2);
            db.AddOutParameter(cmd, 
"TotalPage", DbType.Int16, 4);
            db.AddParameter(cmd, 
"RecordCount", DbType.Int16, ParameterDirection.ReturnValue, "", DataRowVersion.Default, 0);


            
this.Repeater1.DataSource = db.ExecuteReader(cmd);            
            
this.Repeater1.DataBind();


            Response.Write(
"輸出參數(shù)值:" + db.GetParameterValue(cmd, "TotalPage").ToString());
            Response.Write(
"<br />返回參數(shù)值:" + db.GetParameterValue(cmd, "RecordCount").ToString());


            
//使用事務(wù)
            db = DatabaseFactory.CreateDatabase("Conn");
            
using (IDbConnection conn = db.CreateConnection())
            {
                conn.Open();
                IDbTransaction _trans 
= conn.BeginTransaction();
                
try
                {
                    DbCommand _cmd 
= db.GetSqlStringCommand("Insert Into GoGo365(F_NickName) values(@NickName)");
                    db.AddInParameter(_cmd, 
"NickName", DbType.String, "AA");
                    db.ExecuteNonQuery(_cmd, _trans 
as DbTransaction);
                    db.ExecuteNonQuery(_cmd, _trans 
as DbTransaction);//F_NickName字段上建有唯一索引,故第二次插入同樣記錄時(shí)會(huì)報(bào)錯(cuò)
                    _trans.Commit();
                }
                
catch
                {
                    
try
                    {
                        _trans.Rollback();
//事務(wù)提交失敗時(shí),則回滾(是否回滾成功,可查看表中有無AA的記錄即可)
                    }
                    
catch { }
                }
                
finally 
                {
                    conn.Close();
                }
            }
        }
    }
}
基本上涉及數(shù)據(jù)庫操作的東東都已經(jīng)在里面了,更多功能大家自己去體驗(yàn)吧

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲欧美日韩另类第一页| 欧美日韩乱一区二区三区| 免费一级欧美大片免费看| 在线中文字幕亚洲欧美一区| 一区二区三区亚洲天堂| 人妻精品一区二区三区视频免精| 综合久综合久综合久久| 国产一区二区三区四区中文| 欧美尤物在线观看西比尔| 麻豆视频传媒入口在线看| 日韩精品综合福利在线观看| 女同伦理国产精品久久久| 97人摸人人澡人人人超碰| 日韩人妻一区二区欧美| 激情综合网俺也狠狠地| 黑鬼糟蹋少妇资源在线观看| 欧美一区二区日韩一区二区| 久热人妻中文字幕一区二区| 亚洲国产精品一区二区| 搡老熟女老女人一区二区| 中日韩美女黄色一级片| 青青操成人免费在线视频| 一区二区日本一区二区欧美| 久久国产人妻一区二区免费| 国内精品美女福利av在线| 91香蕉国产观看免费人人| 日韩国产亚洲一区二区三区| 成年人免费看国产视频| 激情内射亚洲一区二区三区| 加勒比人妻精品一区二区| 在线观看视频成人午夜| 日韩高清一区二区三区四区| 99久热只有精品视频免费看| 91偷拍视频久久精品| 成年女人午夜在线视频| 国产欧美日韩精品一区二区| 欧美日韩精品一区免费| 最近中文字幕高清中文字幕无| 人人爽夜夜爽夜夜爽精品视频| 日韩高清一区二区三区四区| 国产日韩中文视频一区|