GridView和Nhibernate多表查詢邦定

Posted on 2006-07-21 12:30  零度海洋  阅读(2106)  评论(3)    收藏  举报

最近在網上看到關於多表的查詢的,返回值的問題

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Promise.Order;
using Promise.NH;
using Test.Data;


public partial class Promise_Base_Menu : System.Web.UI.Page
{

  
   

    public void GetNewData() {  //當第一次打開網頁或數據源查詢改變了的時候,才調用,並將數據重新賦於dt

        RecordSet rec = RecordSet.CreateEntityControl("Test.Data");
        IList list = rec.CreateEntities("select p.Name,a.AddressName From Person p,Address a  where p.Address.Id=a.Id");

        DataTable dt = new DataTable();
        DataColumn dc = new DataColumn();  //增加第一列
        dc.DataType = System.Type.GetType("System.Int32");
        dc.ColumnName = "Id";
        dc.AutoIncrement = true;
        dt.Columns.Add(dc);

      
        dc = new DataColumn(); //增加第二列
        dc.DataType = System.Type.GetType("System.String");
        dc.ColumnName = "name";
        dc.Caption = "姓名";
        dt.Columns.Add(dc);

 


        dc = new DataColumn();  //增加第三列
        dc.DataType = System.Type.GetType("System.String");
        dc.ColumnName = "address";
        dc.Caption = "地址";
        dt.Columns.Add(dc);
        dc.Dispose();


        IEnumerator enu = list.GetEnumerator();
        while (enu.MoveNext())
        {     //給查詢出來的每行賦值
            object[] obj = (object[])enu.Current;
            DataRow newrow = dt.NewRow();
            newrow["name"] = obj[0];
            newrow["address"] = obj[1];
            dt.Rows.Add(newrow);
        }

        Session.Add("mydt", dt);
     
    }


    protected void Page_Load(object sender, EventArgs e)
    {


        if (!IsPostBack)
        {
            this.GetNewData();
            this.GridView1.DataSource = (DataTable)Session["mydt"];
            this.GridView1.DataBind();

        }

    }
   
    protected void Page_Unload(object sender, EventArgs e)
    {

        Session.RemoveAll();


    }


    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
      
    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.GridView1.DataSource = (DataTable)Session["mydt"];
     
        this.GridView1.PageIndex = e.NewPageIndex;
          this.GridView1.DataBind();
    }
}

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3