最近在網上看到關於多表的查詢的,返回值的問題
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();
}
}