日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

在C#中建立復(fù)雜的、靈活的SQL查詢/命令(3)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:ASP.NET生成高質(zhì)量縮略圖通用函數(shù)(c#代碼)
在網(wǎng)站開發(fā)時,生成縮略圖是一個非常常見和實用的功能.以前在asp里只能借助com組件實現(xiàn),現(xiàn)在在.net里可以利用框架的強(qiáng)大的類庫輕松實現(xiàn).下面帖出完整的代碼(帶詳細(xì)注釋),參考了網(wǎng)上的一些文章及.

SelectQueryBuilder query = new SelectQueryBuilder();
query.SelectFromTable("Orders");
// Add 'Criteria' column to level 1
query.AddWhere("CustomerID", Comparison.Equals,"VINET", 1);
query.AddWhere("OrderDate", Comparison.LessThan,new DateTime(2005,1,1), 1);
// Add first 'Or...' column to level 2
query.AddWhere("CustomerID", Comparison.Equals, "TOMSP", 2);
query.AddWhere("OrderDate", Comparison.LessThan,new DateTime(2004,6,30), 2);
// Add second 'Or...' column to level 3
query.AddWhere("CustomerID", Comparison.Equals,"TOMSP", 3);
query.AddWhere("OrderDate", Comparison.GreaterThan,new DateTime(2006,1,1), 3);

  當(dāng)調(diào)用 BuildQuery時,所有定義的層將被OR到一起,幾乎和SQL Server生成的一樣。

  如果你到所產(chǎn)生的語句接近一樣時,想讓查詢更復(fù)雜,你可能會說“我的放兩個隨后的語句一起放在一個語句中,在兩個日期間使用OR”。你能夠這樣作。在SQL Server查詢生成器中,這個查詢看起來像:

  同樣,它也可能使用SelectQueryBuilder通過創(chuàng)建’嵌套的WHERE子句’來實現(xiàn)。


SelectQueryBuilder query = new SelectQueryBuilder();
query.SelectFromTable("Orders");
// Add 'Criteria' column to level 1
query.AddWhere("CustomerID", Comparison.Equals, "VINET", 1);
query.AddWhere("OrderDate", Comparison.LessThan,
new DateTime(2005,1,1), 1);
// Add 'Or...' column to level 2
query.AddWhere("CustomerID",
Comparison.Equals, "TOMSP", 2);
// Add the date selection clause
WhereClause clause =query.AddWhere("OrderDate", Comparison.LessThan,
  new DateTime(2004,6,30), 2);
// Add a nested clause to the captured clause
clause.AddClause(LogicOperator.Or,
Comparison.GreaterThan, new DateTime(2006,1,1));

  注意到我用了一個WhereClause對象,它由AddWhere調(diào)用返回。接著調(diào)用clause.AddClause創(chuàng)建一個嵌套的子句柄,并且選擇通過指定LogicOperator.Or來把它OR到第一個子句上。所產(chǎn)生的語句如下:


SELECT Orders.*
FROM Orders
WHERE
(
 (CustomerID = 'VINET')
 AND (OrderDate < '2005/01/01 12:00:00')
)
OR
(
 (CustomerID = 'TOMSP')
 AND (OrderDate < '2004/06/30 12:00:00' OR
 OrderDate > '2006/01/01 12:00:00')
)

  請注意這個例子中日期包含’12:00:00’,這是因為我在DateTime構(gòu)造體中忽略了時間。但這只要由于我的習(xí)慣。如果我使用new DateTime(2006,1,1,0,0,0),日期字符串將包含’00:00:00’。

  結(jié)論

  在介紹中我就提到,SelectQueryBuilder是CodeEngine框架的一部分。這個框架 也包含了DeleteQueryBuilder,UpdateQueryBuilder,InsertQueryBuilder。我在通過我的C#DAL產(chǎn)生器生成的代碼中使用這些生成器。你能從www.code-engine.com上下載一份 框架DLL的拷貝。在這期間我也將發(fā)布其它的查詢生成器的源代碼。同時如果你有什么問題,評價或建議,請及時與我聯(lián)系。

分享:asp.net里面的身份驗證和授權(quán)
今天閑著無聊.想起來了ASP.NET身份驗證.感覺良好.貼出下列代碼: login.aspx HTML代碼 <%@ Page language="c#" Codebehind="02Login.aspx.cs" AutoEventWire

共3頁上一頁123下一頁
來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
相關(guān).Net教程