我有一個listview顯示來自和sql server視圖的記錄。 數據由customerid進行過濾,並在視圖運行時具有2個唯一記錄。 但是,listview將只顯示第一條記錄,並顯示它兩次。 因此,有兩個記錄顯示在列表視圖中,但它不顯示視圖生成的兩個記錄,它只是在視圖中顯示第一條記錄兩次。 我希望這很清楚。listview只顯示一個記錄兩次
這是怎麼回事?我一直在尋找幾個小時,但沒有運氣。
<asp:ListView ID="lstBeforeAfter" runat="server" DataKeyNames="CustomerID" InsertItemPosition="None">
<LayoutTemplate>
<div class="divreg">
<table ID="itemPlaceholderContainer" runat="server" cellpadding="2" class="tablebasic" style="vertical-align:top">
<tr ID="Tr1" runat="server" align="center">
<td style="background-color:#7e0d7d; color:White; font-size:1.2em; font-weight:bold; padding-top:4px; padding-bottom:4px">
Services
</td>
</tr>
<tr ID="itemPlaceholder" runat="server">
</tr>
</table>
</div>
</td>
</LayoutTemplate>
<ItemTemplate>
<tr style="">
<td align="center">
<div class="divwrap">
<div class="left3ColHeader">
<b>Date</b>
</div>
<div class="mid3ColHeader">
<b>Stylist</b>
</div>
<div class="right3ColHeader">
<b>Services</b>
</div>
<div class="formclear">
</div>
<div class="left3ColBorder">
<%# Eval("SchedStartDateTime", "{0:d}")%>
</div>
<div class="mid3ColBorder">
<%#Eval("FullName")%>
</div>
<div class="right3ColBorder">
<%#Eval("ServiceText")%>
</div>
<div class="formclear">
</div>
<div class="left2ColHeader">
<b>Before Picture</b>
</div>
<div class="right2ColHeader">
<b>After Picture</b>
</div>
<div class="formclear">
</div>
<div class="left2ColPicBorder">
<asp:Image ID="imgLeft" ImageUrl='<%# Eval("BeforePicPath") %>' runat="server" />
</div>
<div class="right2ColPicBorder">
<asp:Image runat="server" ID="imgRight" ImageUrl='<%# Eval("AfterPicPath") %>' />
</div>
<div class="formclear">
</div>
<div class="left2ColBorder">
<asp:Label ID="lblBefore" Width="95%" runat="server" Text='<%# Eval("BeforePicName") %>'></asp:Label>
</div>
<div class="right2ColBorder">
<asp:Label ID="lblAfter" Width="95%" runat="server" Text='<%# Eval("AfterPicName") %>'></asp:Label>
</div>
<div class="formclear">
</div>
<div class="divreg">
<hr />
</div>
<div class="formclear">
</div>
</div>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#ffffd9">
<td align="center">
<div class="divwrap">
<div class="left3ColHeader">
<b>Date</b>
</div>
<div class="mid3ColHeader">
<b>Stylist</b>
</div>
<div class="right3ColHeader">
<b>Services</b>
</div>
<div class="formclear">
</div>
<div class="left3ColBorder">
<%# Eval("SchedStartDateTime", "{0:d}")%>
</div>
<div class="mid3ColBorder">
<%#Eval("FullName")%>
</div>
<div class="right3ColBorder">
<%# Eval("ServiceText").ToString%>
</div>
<div class="formclear">
</div>
<div class="left2ColHeader">
<b>Before Picture</b>
</div>
<div class="right2ColHeader">
<b>After Picture</b>
</div>
<div class="formclear">
</div>
<div class="left2ColPicBorder">
<asp:Image ID="imgLeft" ImageUrl='<%# Eval("BeforePicPath") %>' runat="server" />
</div>
<div class="right2ColPicBorder">
<asp:Image runat="server" ID="imgRight" ImageUrl='<%# Eval("AfterPicPath") %>' />
</div>
<div class="formclear">
</div>
<div class="left2ColBorder">
<asp:Label ID="lblBefore" Width="95%" runat="server" Text='<%# Eval("BeforePicName") %>'></asp:Label>
</div>
<div class="right2ColBorder">
<asp:Label ID="lblAfter" Width="95%" runat="server" Text='<%# Eval("AfterPicName") %>'></asp:Label>
</div>
<div class="formclear">
</div>
<div class="divreg">
<hr />
</div>
<div class="formclear"> </div>
</div>
</td>
</tr>
</AlternatingItemTemplate>
</asp:ListView>
Protected Sub LoadPortfolio(ByVal iCustID As Integer)
Dim dc As New SalonDataClassesDataContext
Dim q = From p In dc.vClientStyles Where p.CustomerID = iCustID Order By p.SchedStartDateTime Descending Select p
If q.Count > 0 Then
Me.lstBeforeAfter.DataSource = q
Me.lstBeforeAfter.DataBind()
End If
End Sub
SELECT ISNULL(dbo.Services.ServiceID, 0) AS ServiceID, dbo.Schedules.SchedStartDateTime, dbo.Schedules.ServiceText, dbo.Schedules.CustomerID,
ISNULL(dbo.Services.Completed, 0) AS Completed, dbo.Stylists.FullName, dbo.Stylists.StylistID, ISNULL(dbo.Services.BeforePicName, 'No Title') AS BeforePicName,
ISNULL(dbo.Services.BeforePicPath, '../images2020/resume-photo.jpg') AS BeforePicPath, ISNULL(dbo.Services.AfterPicName, 'No Title') AS AfterPicName,
ISNULL(dbo.Services.AfterPicPath, '../images2020/resume-photo.jpg') AS AfterPicPath
FROM dbo.Schedules INNER JOIN dbo.Stylists ON dbo.Schedules.UserID = dbo.Stylists.UserID LEFT OUTER JOIN dbo.Services ON dbo.Schedules.ServiceID = dbo.Services.ServiceID
ORDER BY dbo.Schedules.SchedStartDateTime DESC
更改爲聯合查詢,但linq不喜歡它。
SELECT ISNULL(dbo.Schedules.ServiceID, 0) AS ServiceID, dbo.Schedules.SchedStartDateTime, dbo.Schedules.ServiceText, dbo.Schedules.CustomerID,
ISNULL(dbo.Schedules.Completed, 0) AS Completed, dbo.Stylists.FullName, dbo.Stylists.StylistID, 'No Title' AS BeforePicName, '../images2020/resume-photo.jpg' AS BeforePicPath, 'No Title' AS AfterPicName, '../images2020/resume-photo.jpg' AS AfterPicPath
FROM dbo.Schedules INNER JOIN dbo.Stylists ON dbo.Schedules.UserID = dbo.Stylists.UserID
Where dbo.Schedules.CustomerID = 27
UNION
SELECT ISNULL(dbo.Services.ServiceID, 0) AS ServiceID, dbo.Schedules.SchedStartDateTime, dbo.Schedules.ServiceText, dbo.Schedules.CustomerID,
ISNULL(dbo.Services.Completed, 0) AS Completed, dbo.Stylists.FullName, dbo.Stylists.StylistID, ISNULL(dbo.Services.BeforePicName, 'No Title') AS BeforePicName,
ISNULL(dbo.Services.BeforePicPath, '../images2020/resume-photo.jpg') AS BeforePicPath, ISNULL(dbo.Services.AfterPicName, 'No Title') AS AfterPicName, ISNULL(dbo.Services.AfterPicPath, '../images2020/resume-photo.jpg') AS AfterPicPath
FROM dbo.Schedules INNER JOIN dbo.Stylists ON dbo.Schedules.UserID = dbo.Stylists.UserID INNER JOIN dbo.Services ON dbo.Schedules.ServiceID = dbo.Services.ServiceID
Where dbo.Schedules.CustomerID = 27 ORDER BY dbo.Schedules.SchedStartDateTime DESC
我現在得到錯誤...查詢結果不能被枚舉多次。
我在做什麼錯? 感謝
不,他們有個相同的ID。我正在做一個select語句where customerid = customerid –
好的,我也將視圖添加到原始問題 –
感謝您的幫助 –