【发布时间】:2014-03-17 12:39:03
【问题描述】:
好的!
我正在尝试合并我在 SelectCommand 中使用别名的 4 个表。
问题--> GridView 在最终输出中不可见
Guesswork--> 我什至尝试过不使用别名(仍然无法使用)。所以我有点迷失了,因为我要去哪里错了
如果我能提供更多信息,请告诉我?
<asp:HiddenField runat="server" ID="FirstName_HiddenField" Value="s"/>
<div id="StudentDetails">
<div id="StudentDetailsBanner">
Student Details
</div>
<div id="StudentDetailsContent">
<asp:SqlDataSource runat="server"
ID="SqlDataSource_FirstName"
ConnectionString="Data Source=NIRMIT-PC\SQLEXPRESS;Initial Catalog=KohinoorDatabaseTrial3;Integrated Security=True"
SelectCommand="SELECT SD.enq_id, SD.reg_id, SD.first_name, SD.middle_name, SD.last_name, SED.enq_date, POD.name, SD.DOB, SD.contact_no1, SCD.course, SD.admission_type
FROM StudentDetails AS SD
LEFT OUTER JOIN StudentEnquiryDetails AS SED
ON SD.enq_id = SED.enq_id
LEFT OUTER JOIN StudentCourseDetails AS SCD
ON SD.enq_id = SCD.enq_id
LEFT OUTER JOIN ParentOccupationDetails AS POD
ON SD.enq_id = POD.enq_id
WHERE SD.first_name LIKE '%@FirstName%'">
<SelectParameters>
<asp:ControlParameter ControlID="FirstName_HiddenField" Name="FirstName" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView runat="server"
ID="StudentDetailsGridView"
OnSelectedIndexChanged="StudentDetailsGridView_SelectedIndexChanged"
AutoGenerateColumns="false"
Width="100%"
AllowPaging="true"
PageSize="10"
CssClass="GridViewTable" ViewStateMode="Enabled" Visible="true">
<Columns>
<asp:BoundField DataField="SD.enq_id" HeaderText="Enq No" />
<asp:BoundField DataField="SD.reg_id" HeaderText="Reg No" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="Name" Text='<%# Bind("SD.first_name") + " " + Bind("SD.middle_name") + " " + Bind("SD.last_name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="SED.enq_date" HeaderText="Enq Date" />
<asp:BoundField DataField="POD.name" HeaderText="Guardian" />
<asp:BoundField DataField="SD.DOB" HeaderText="Date of Birth" />
<asp:BoundField DataField="SDcontact_no1" HeaderText="Contact No" />
<asp:BoundField DataField="SCD.course" HeaderText="Course" />
<asp:BoundField DataField="SD.admission_type" HeaderText="Admission Type" />
</Columns>
<HeaderStyle CssClass="TableHeadingRow" />
<RowStyle CssClass="TableRow" />
</asp:GridView>
</div>
</div>
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
StudentDetailsGridView.DataSourceID = SqlDataSource_FirstName.ID;
StudentDetailsGridView.DataBind();
}
【问题讨论】:
-
确保您的查询返回结果。这将告诉您问题出在您的 GridView 还是您的查询上。
-
是的,查询正在运行。
-
将 StudentDetailsGridView.EmptyDataText 属性设置为“未找到结果”。在您的标记中。在 MSDN 上查看有关 EmptyDataText 属性的信息。
-
试试@mason 说的。看看您是否可以在页面上显示任何内容。或者,您可以将您的项目的链接发送给我,以便我查看,以及您的数据提取(带有示例数据的 csv 文件就足够了)。谢谢
-
谢谢@mason。是的,它显示 "No Result Found" 。但我不明白 MS SqlServer 如何给我行,而 ASP.NET 给我“未找到结果”?所以查询出了点问题,但是什么?看起来很正常! ://
标签: c# asp.net gridview left-join sqldatasource