连表查询Left join的实现

2015-04-06 08:58:59  访问(1258) 赞(0) 踩(0)

生成和输出的SQL语句

select top 10 t.ID, t.TheName, t.ClassId, 
t.CreateTime, t.UpdateTime, 
tClass.ID as C__ID,tClass.TheName as C__TheName,tClass.CreateTime as C__CreateTime,
tClass.UpdateTime as C__UpdateTime from UTB_EXAM_STUDENT t left join 
UTB_EXAM_CLASS tClass 
on t.ClassId = tClass.ID where tClass.TheName = '一班'

@tClassp2 = '一班'


select top 10 t.ID, t.TheName, t.ClassId, 
t.CreateTime, t.UpdateTime, 
tClass.ID as C__ID,tClass.TheName as C__TheName,tClass.CreateTime as C__CreateTime,
tClass.UpdateTime as C__UpdateTime from UTB_EXAM_STUDENT t left join 
UTB_EXAM_CLASS tClass 
on t.ClassId = tClass.ID where tClass.TheName = @tClassp2

@tClassp2 	 一班 	 String 	 Input 	 SqlParameter


关键代码

IFromTableDriver ifrom = entity;
            ifrom.AddIFromTableItemWithBaseEntity
                (
                    "tClass", 
                    entityClass, 
                    SlowX.Core.Enums.SqlJoin.EmSqlJoin.LeftJoin,
                    entity._ClassId,
                    entityClass._ID
                );


代码写法

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SlowX.DAL.Helpers;
using SlowX.Core.ICoreClasses;
using System.Data;
using SlowX.Functions.Functions;
using SlowX.Core.CoreClasses;

public partial class ExamSQL : System.Web.UI.Page
{
    protected string strResult = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        DataBindTheContorls(null);
    }

    #region 操作

    /// <summary>
    /// 
    /// </summary>
    /// <param name="xdbHelper"></param>
    protected void DataBindTheContorls(DBHelper xdbHelper)
    {
        string theResult = null;
        bool bIsCreate = true;

        if (xdbHelper == null)
        {
            xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
        }
        else
        {
            // 没有打开链接 //
            bIsCreate = xdbHelper.IsNotOpen();
        }

        try
        {
            if (bIsCreate)
                xdbHelper.OpenDBHelper();

            SlowX.ExamLib.Business.UTB_EXAM_STUDENT
             bll
             =
             SlowX.ExamLib.Business.UTB_EXAM_STUDENT.instance;

            SlowX.ExamLib.Entity.UTB_EXAM_STUDENT
                entity
                =
                new SlowX.ExamLib.Entity.UTB_EXAM_STUDENT();

            SlowX.ExamLib.Entity.UTB_EXAM_CLASS
                entityClass
                =
                new SlowX.ExamLib.Entity.UTB_EXAM_CLASS();

            IFromTableDriver ifrom = entity;
            ifrom.AddIFromTableItemWithBaseEntity
                (
                    "tClass", 
                    entityClass, 
                    SlowX.Core.Enums.SqlJoin.EmSqlJoin.LeftJoin,
                    entity._ClassId,
                    entityClass._ID
                );

            IQueryDriver iq = entity;
            iq.AddIQueryItemWithEntityFieldInfo(entityClass._TheName, "一班");

            ISelectDriver iselect = entity;
            iselect.AddISelectItemWithBaseEntity(entity);

            entityClass.selectPreName = "C__";

            iselect.AddISelectItemWithBaseEntity(entityClass);

            DataSet ds = bll.PageList(0, 10, entity, xdbHelper);

            theResult =
                @"<textarea name=""TextBox1"" rows=""2"" cols=""20"" id=""TextBox1"" style=""height:400px;width:99%;"">"
                + bll.BuildSqlPageList(0, 10, entity, xdbHelper)
                + "</textarea>";

            theResult += "<br /><br />";

            theResult += DataSetSlowXFunctions.DataSetToHtmlTable(ds, true);


            if (bIsCreate)
                xdbHelper.EndDBHelper();

        }
        catch (Exception err)
        {
            if (bIsCreate)
                xdbHelper.TranDBHelper();

            throw err;
        }
        finally
        {
            if (bIsCreate)
                xdbHelper.FinallyDBHelper();
        }

        strResult = theResult;
    }

    #endregion 操作

}




标签:连表查询Left join的实现 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)