C# ObjectDataSource的输入字符串格式不正确

C# ObjectDataSource的输入字符串格式不正确,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我有一个存储过程要在我的书表中搜索: ALTER PROCEDURE dbo.book_serchbook @CategoryID int,@BookTitle nvarchar(100) , @CategoryName nvarchar (100) , @AuthorName nvarchar(100), @PublisherName nvarchar(100) AS SELECT DISTINCT BookTable.BookID,

我有一个存储过程要在我的
表中搜索:

ALTER PROCEDURE dbo.book_serchbook
    @CategoryID int,@BookTitle nvarchar(100) ,
    @CategoryName nvarchar (100) ,
    @AuthorName nvarchar(100),
    @PublisherName nvarchar(100) 
AS
    SELECT DISTINCT 
       BookTable.BookID, BookTable.BookCover
    FROM          
       BookTable 
    INNER JOIN
       CategoryTable ON CategoryTable.CategoryID = BookTable.CategoryID
    INNER JOIN 
       PublisherTable ON PublisherTable.PublisherID = BookTable.PublisherID 
    LEFT OUTER JOIN
       BookAuthorTable 
    INNER JOIN 
       AuthorTable ON AuthorTable.AuthorID = BookAuthorTable.AuthorID 
       ON BookTable.BookID = BookAuthorTable.BookID
    WHERE     
      (BookTable.CategoryID = @CategoryID) OR
      (PublisherTable.PublisherName LIKE N'%' + @PublisherName + N'%') OR
      (BookTable.BookTitle LIKE N'%' + @BookTitle + N'%') OR
      (AuthorTable.AuthorFName + ' ' + AuthorTable.AuthorLName LIKE N'%' + @AuthorName + N'%') OR
      (CategoryTable.CategoryName LIKE N'%' + @CategoryName + N'%')
我想使用文本框进行搜索,并使用
ObjectDataSource
GridView
来显示结果:

<asp:ObjectDataSource ID="ObjectDataSource5" runat="server" 
     DataObjectTypeName="BookDataBaseComponent.BookDetails" 
     DeleteMethod="DeleteBook" InsertMethod="InsertBook" SelectMethod="SearchBook" 
     TypeName="BookDataBaseComponent.BookDB" UpdateMethod="UpdateBook">
     <DeleteParameters>
         <asp:Parameter Name="BookID" Type="Int32" />
     </DeleteParameters>
     <SelectParameters>
         <asp:Parameter DefaultValue="%" Name="CategoryID" Type="Int32" />
         <asp:ControlParameter ControlID="booktb" DefaultValue="%" Name="BookTitle" 
             PropertyName="Text" Type="String" />
         <asp:ControlParameter ControlID="DropDownList1" DefaultValue="%" 
             Name="CategoryName" PropertyName="SelectedValue" Type="String" />
         <asp:ControlParameter ControlID="alntb" DefaultValue="%" Name="AuthorName" 
             PropertyName="Text" Type="String" />
         <asp:ControlParameter ControlID="pubtb" DefaultValue="%" Name="PublisherName" 
             PropertyName="Text" Type="String" />
     </SelectParameters>
 </asp:ObjectDataSource>

运行项目时,我收到一条错误消息:

输入字符串的格式不正确


如何有效?默认为带有
%
??

的int32。我喜欢你的回答,而不是我对答案的猜测。好的,我删除了CategoryId。我可以显示书籍列表,但无法搜索它们。有错误吗?如果您能提供更多关于您发送的内容的详细信息,并提供一个查询示例。。。使用调试。。