1. 本例通過SDQ及資料表模型內建的查詢功能,對資料進行查詢並將結果綁定組一個控制項
本例環境:
1.ASP.NET 2.0,VS.NET 2005
2.在一個頁面裡有一個DataGrid(GroupList)
SDQ裡有兩個概念將用到:
1.SQRun
2.資料表模型(如:BCF_FBT_Group)
//1.使用資料表模型,進行快速的、簡單的查詢
//
public void Bind11() //實現與[Bind21()]同樣的效果
...{
GroupList.DataSource = BCF_FBT_Group.M.Select();//1.%%%%快速查詢,並擷取結果%%%%
GroupList.DataTextField = BCF_FBT_Group.M.PG_Code.Name;
GroupList.DataValueField = BCF_FBT_Group.M.CN_Name.Name;
GroupList.DataBind();
}
//2.使用資料表模型,進行執行有條件的查詢
//
public void Bind12() //實現與[Bind22()]同樣的效果
...{
//2.%%%%通過條件構建器[WhereBuilder]定製查詢條件
//
BCF_FBT_Group group = new BCF_FBT_Group();
group.Where(BCF_FBT_Group.M.In_Level == 2)
.And(BCF_FBT_Group.M.PG_Code == Request.QueryString["CODE"]);
GroupList.DataSource = group.Select();//快速查詢,並獲結果
GroupList.DataTextField = group.PG_Code.Name;
GroupList.DataValueField = group.CN_Name.Name;
GroupList.DataBind();
}
//1.使用 SQRun(SDQ 查詢引擎) 進行最基礎的資料查詢
//
public void Bind21()
...{
SQRun SQ = new SQRun();
//1.%%%%確定要查詢的表源%%%%
//
SQ.From(BCF_FBT_Group.M);
GroupList.DataSource = SQ.Select();//最後執行查詢,並擷取資料
GroupList.DataTextField = BCF_FBT_Group.M.PG_Code.Name;
GroupList.DataValueField = BCF_FBT_Group.M.CN_Name.Name;
GroupList.DataBind();
}
//2.使用SQRun 有條件過濾的資料查詢
//
public void Bind22()
...{
SQRun SQ = new SQRun();
//確定要查詢的表源
//
SQ.From(BCF_FBT_Group.M);
//2.%%%%使用SQ,對資料進行過濾%%%%
//
SQ.Where(BCF_FBT_Group.M.In_Level == 2)
.And(BCF_FBT_Group.M.PG_Code == Request.QueryString["CODE"]);
GroupList.DataSource = SQ.Select();//最後執行查詢,並擷取資料
GroupList.DataTextField = BCF_FBT_Group.M.PG_Code.Name;
GroupList.DataValueField = BCF_FBT_Group.M.CN_Name.Name;
GroupList.DataBind();
//也可以寫成:GroupList.DataSource = SQ.Where(...).And(...).Select()
}
//3.使用SQRun 進行有排序的資料查詢
//
public void Bind23()
...{
SQRun SQ = new SQRun();
//確定要查詢的表源
//
SQ.From(BCF_FBT_Group.M);
//使用SQ,對資料進行過濾
//
SQ.Where(BCF_FBT_Group.M.In_Level == 2)
.And(BCF_FBT_Group.M.PG_Code == Request.QueryString["CODE"]);
//3.%%%%使用SQ,可以支援更複要的排序功能%%%%
//
SQ.OrderBy(BCF_FBT_Group.M.PG_Code);
GroupList.DataSource = SQ.Select();//最後執行查詢,並擷取資料
GroupList.DataTextField = BCF_FBT_Group.M.PG_Code.Name;
GroupList.DataValueField = BCF_FBT_Group.M.CN_Name.Name;
GroupList.DataBind();
}
//4.使用SQRun 執行多表關聯的查詢複雜查詢
//
public void Bind24()
...{
SQRun SQ = new SQRun();
//確定要查詢的表源
//
SQ.From(BCF_FBT_Group.M);
//4.%%%%使用SQ,對資料進行多表關聯查詢%%%%
//
SQ.Join(BCF_SNT_Resource_Linked.M, JoinType.InnerJoin)
.On(BCF_FBT_Group.M.PGID == BCF_SNT_Resource_Linked.M.LK_OBJT_ID)
.And(BCF_SNT_Resource_Linked.M.LK_OBJT == "D");
//使用SQ,對資料進行過濾
//
SQ.Where(BCF_FBT_Group.M.In_Level == 2)
.And(BCF_FBT_Group.M.PG_Code == Request.QueryString["CODE"]);
//使用SQ,可以支援更複要的排序功能
//
SQ.OrderBy(BCF_FBT_Group.M.PG_Code);
GroupList.DataSource = SQ.Select();//最後執行查詢,並擷取資料
GroupList.DataTextField = BCF_FBT_Group.M.PG_Code.Name;
GroupList.DataValueField = BCF_FBT_Group.M.CN_Name.Name;
GroupList.DataBind();
}
// 與Bind24()同
//
public void Bind24_1()
...{
SQRun SQ = new SQRun();
DataTable dt = SQ.From(BCF_FBT_Group.M)
.Join(BCF_SNT_Resource_Linked.M, JoinType.InnerJoin)
.On(BCF_FBT_Group.M.PGID == BCF_SNT_Resource_Linked.M.LK_OBJT_ID)
.And(BCF_SNT_Resource_Linked.M.LK_OBJT == "D")
.Where(BCF_FBT_Group.M.In_Level == 2)
.And(BCF_FBT_Group.M.PG_Code == Request.QueryString["CODE"])
.OrderBy(BCF_FBT_Group.M.PG_Code)
.Select();
GroupList.DataSource = dt;
GroupList.DataTextField = BCF_FBT_Group.M.PG_Code.Name;
GroupList.DataValueField = BCF_FBT_Group.M.CN_Name.Name;
GroupList.DataBind();
}