2010-10-16 26 views
0

下面是我的SQL數據庫我的數據表,再下面是我的Repeater控件的代碼:問題與ASP直放站和SQL數據源

ArticleID int NOT NULL, 
ArticleTitle varchar(100) NOT NULL, 
ArticleCategory int NOT NULL, 
ArticleDate datetime NOT NULL, 
ArticleContent text NOT NULL, 
DeletedYN char(3) NOT NULL 

<asp:Repeater runat="server" ID="rptArticles" DataSourceID="dsLatestArticles"> 
    <HeaderTemplate> 
     <span class="title"><%#Container.DataItem("ArticleTitle")%></span><br /> 
     <span class="title3">Posted On: <%#Container.DataItem("ArticleDate")%></span> 
    </HeaderTemplate> 
    <ItemTemplate><p><%#Container.DataItem("ArticleContent")%></p></ItemTemplate> 
    <FooterTemplate> 
     <p class="RightAlign"><a href="/Articles/Read.aspx?i=<%#Container.DataItem("ArticleID") %>">Read more...</a></p> 
    </FooterTemplate> 
</asp:Repeater> 

當我嘗試加載網頁,這是對的,我得到一個錯誤說Object variable or With block variable not set.

僅供參考,我的SqlDataSource配置如下:

<asp:SqlDataSource ID="dsLatestArticles" runat="server" 
    ConnectionString="<%$ ConnectionStrings:VBSiteConnectionString %>"   
    SelectCommand="SELECT [ArticleID], [ArticleTitle], [ArticleDate], [ArticleContent] FROM [Articles] WHERE ([DeletedYN] = @DeletedYN)"> 
    <SelectParameters> 
     <asp:Parameter DefaultValue="No" Name="DeletedYN" Type="String" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

我不知道我做了什麼錯在這裏,任何人都可以看到的一個問題? 有關進一步參考,這裏是我的堆棧跟蹤:

[NullReferenceException: Object variable or With block variable not set.] 
    Microsoft.VisualBasic.CompilerServices.Container..ctor(Object Instance) +510276 
    Microsoft.VisualBasic.CompilerServices.NewLateBinding.InternalLateIndexGet(Object Instance, Object[] Arguments, String[] ArgumentNames, Boolean ReportErrors, ResolutionFailure& Failure) +88 
    Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateIndexGet(Object Instance, Object[] Arguments, String[] ArgumentNames) +21 
    ASP.default_aspx.__DataBind__control3(Object sender, EventArgs e) in D:\Development\Projects\Web\LogansArchive\Default.aspx:9 
    System.Web.UI.Control.OnDataBinding(EventArgs e) +99 
    System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +92 
    System.Web.UI.Control.DataBind() +15 
    System.Web.UI.Control.DataBindChildren() +211 
    System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +102 
    System.Web.UI.Control.DataBind() +15 
    System.Web.UI.WebControls.Repeater.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +124 
    System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource) +323 
    System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e) +51 
    System.Web.UI.WebControls.Repeater.DataBind() +75 
    System.Web.UI.WebControls.Repeater.EnsureDataBound() +55 
    System.Web.UI.WebControls.Repeater.OnPreRender(EventArgs e) +15 
    System.Web.UI.Control.PreRenderRecursiveInternal() +80 
    System.Web.UI.Control.PreRenderRecursiveInternal() +171 
    System.Web.UI.Control.PreRenderRecursiveInternal() +171 
    System.Web.UI.Control.PreRenderRecursiveInternal() +171 
    System.Web.UI.Control.PreRenderRecursiveInternal() +171 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842 

在此先感謝!

回答

0

萬一別人遇到這個問題,這裏是我發現

原因
我是從我的SqlDataSource在我Repeater控件的部分拉動數據的解決方案。 這是造成問題的原因。我不知道爲什麼,但重要的是,這樣做是行不通的。


所有數據檢索(即<%#Container.DataItem("Field1") %>塊)必須中Repeater控制的<ItemTemplate>部分被使用。