2011-11-01 61 views
0

單擊中繼器中的任意字母按鈕時出現此錯誤。我已經在sql server中工作的sql語句,但在我的頁面上它只是出錯。唯一不同的是,在sql server中,我將「@CompanyID」更改爲實際ID,將「{0}」更改爲「a」,以便查詢運行。索引(基於零)必須大於或等於零並小於參數的大小

我在網上發現的這個問題的所有帖子都提到了這個 - > {0},但是我沒有看到任何可能會試圖傳遞多個參數的錯誤。

<asp:repeater id="rptLetters" runat="server" datasourceid="dsLetters"> 
<headertemplate> 
| 
</headertemplate> 
<itemtemplate> 
<asp:linkbutton id="btnLetter" runat="server" onclick="btnLetter_Click" 
text='<%#Eval("Letter")%>' /> 
</itemtemplate> 

<separatortemplate> 
| 
</separatortemplate> 
</asp:repeater> 

Protected Sub btnLetter_Click(ByVal sender As Object, ByVal e As EventArgs) 
    Dim btnLetter As LinkButton = TryCast(sender, LinkButton) 
    If btnLetter Is Nothing Then 
     Return 
    End If 
    'SELECT statement to filter Gridview 
    dsCategoryLookup.SelectCommand = [String].Format("SELECT 
     Category.CategoryID, Category.CategoryName, Product.ProductID, 
     Product.ProductName, Company.CompanyID 
     FROM Category 
     LEFT JOIN CategoryLink 
     ON Category.CategoryID = CategoryLink.CategoryID 
     LEFT JOIN Product ON Product.ProductID = CategoryLink.ProductID 
     LEFT JOIN CompanyLink ON CompanyLink.ProductID = Product.ProductID 
     LEFT JOIN Company ON Company.CompanyID = CompanyLink.CompanyID 
     WHERE (Category.CategoryName LIKE '{0}%') 
     AND Company.CompanyID = @CompanyID), btnLetter.Text") 

    'declare @CompanyID 
    dsCategoryLookup.SelectParameters.Clear() 
    Dim controlParam As ControlParameter = New ControlParameter 
    controlParam.ControlID = "ddlCompany" 
    controlParam.DefaultValue = "-1" 
    controlParam.Name = "CompanyID" 
    controlParam.PropertyName = "SelectedValue" 
    controlParam.Type = TypeCode.Decimal 

    dsCategoryLookup.SelectParameters.Add(controlParam) 
End Sub 

回答

0

它只是你有你的引號在錯誤的地方? btnLetter.Text在您的代碼中包含在您的格式字符串中:

dsCategoryLookup.SelectCommand = [String].Format("SELECT 
    Category.CategoryID, Category.CategoryName, Product.ProductID, 
    Product.ProductName, Company.CompanyID 
    FROM Category 
    LEFT JOIN CategoryLink 
    ON Category.CategoryID = CategoryLink.CategoryID 
    LEFT JOIN Product ON Product.ProductID = CategoryLink.ProductID 
    LEFT JOIN CompanyLink ON CompanyLink.ProductID = Product.ProductID 
    LEFT JOIN Company ON Company.CompanyID = CompanyLink.CompanyID 
    WHERE (Category.CategoryName LIKE '{0}%') 
    AND Company.CompanyID = @CompanyID)", btnLetter.Text) 
+0

哇我無法相信我錯過了這一點。多麼尷尬。謝謝。 – jlg

相關問題