我在Access中运行的查询在我的网站上执行时似乎无法运行。这是我希望数据库为以下内容填充内容的网页代码:
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/TravelJoansDB.accdb"
SelectCommand="SELECT * FROM [Table2] INNER JOIN BlogEntryItems ON Table2.ID=BlogEntryItems.BlogID AND Table2.ID=@ID">
<SelectParameters>
<asp:QueryStringParameter Name="ID" QueryStringField="Table2.ID" Type="Decimal" />
</SelectParameters>
</asp:AccessDataSource>
<asp:DataList ID="DataList1" DataSourceID="AccessDataSource1"
runat="server" ItemStyle-CssClass="picTableStyle"
DataKeyField="Table.2ID">
<ItemStyle></ItemStyle>
<ItemTemplate>
<table>
<tr>
<td>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# "PlaceImages/" + Eval("Image") %>' /><br />
<asp:Label ID="Label1" CssClass="picCaptionStyle" runat="server" Text='<%# Eval("Caption") %>' />
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label4" class="picBodyText" runat="server" Text='<%# Eval("PicStory") %>' />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
当我取出联接时,它运行正常。我添加了连接并且它没有给我任何错误或任何东西,它似乎没有结果它在我的网站上显示。有什么想法吗?
答案 0 :(得分:0)
请注意,我没有参与AccessDataSource
。但是,查看文档 - 这是您应该研究的内容
SelectCommand="SELECT * FROM [Table2] INNER JOIN BlogEntryItems ON Table2.ID=BlogEntryItems.BlogID AND Table2.ID= ?"
因为AccessDataSource控件扩展了SqlDataSource类 并使用System.Data.OleDb提供程序,指定参数 占位符使用“?”占位符字符。
参考:http://msdn.microsoft.com/en-us/library/8e5545e1%28v=vs.100%29.aspx
Decimal
)或指定相关类型,例如Integer
。