2011-11-01 2 views
0

내 리피터의 문자 버튼을 클릭 할 때이 오류가 발생합니다. SQL Server에서 작동하는 SQL 문이 있지만 내 페이지에는 오류가 있습니다. 유일한 차이점은 SQL Server에서 '@CompanyID'를 실제 ID로 변경하고 '{0}'을 'a'로 변경하여 쿼리가 실행된다는 것입니다.인덱스는 0보다 크거나 같아야하며 인수의 크기보다 작아야합니다.

이 문제와 관련하여 온라인에서 찾은 모든 게시물은 -> {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

관련 문제