使用多表左联接、右联接、内联 或者是Where字句将查询结果绑定到GridView上。多表结果也可以绑定到其它控件上。
后台代码:
private void SetBind()
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(sConnectionString))
{
SqlDataAdapter da = new SqlDataAdapter("SELECT tbReview.ReviewSubmmitState, tbMajor.MajorID, tbMajor.MajorName, tbDepartment.DepartmentName,tbReview.ReviewSumScore,tbReview.ReviewDateTime,tbReview.ReviewSubmmitState FROM tbMajor LEFT OUTER JOIN tbDepartment ON tbMajor.MajorDepartmentID = tbDepartment.DepartmentID left outer join tbReview on ReviewUserID='" + Session["UserID"].ToString() + "' and ReviewMajorID=MajorID ORDER BY tbDepartment.DepartmentName, tbMajor.MajorName", conn);
da.Fill(ds);
conn.Open();
{
using (SqlCommand cmd = new SqlCommand("select count(*) from tbMajor", conn))
{
MajorCount = Convert.ToInt16(cmd.ExecuteScalar());
}
}
}
DataView dv = new DataView(ds.Tables[0]);
if (ViewState["SortExpresstion"] != null)
dv.Sort = ViewState["SortExpresstion"].ToString() + " " + ViewState["SortDirection"].ToString();
gv_ReviewIndex.DataSource = dv;
gv_ReviewIndex.DataBind();
}
前端:然后在GridView控件的绑定行中的控件的属性绑定到查询结果的字段。
<asp:TemplateField HeaderText="所属系部名称" SortExpression="DepartmentName">
<ItemTemplate>
<asp:Label ID="lb_Department" runat="server" Text='<%# Bind("DepartmentName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>