ASP.NET SQL搜索引擎错误 [英] ASP.NET SQL Search Engine Error

查看:163
本文介绍了ASP.NET SQL搜索引擎错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不断尝试在SQL搜索查询使用 @itemname 时收到此错误。在code应搜索中的值SQL表,并在这里显示出来。谢谢你。


  

必须声明标量变量@itemname。


code为 search.aspx

 <身体GT;
    < ASP:SqlDataSource的ID =的SearchResult=服务器
        的ConnectionString ='<%$的ConnectionStrings:的ConnectionString%GT;'
        的SelectCommand =SELECT [ID],[ITEMNAME] FROM [报告] WHERE([ITEMNAME] LIKE'%'+ @itemname +'%')>
    < / ASP:SqlDataSource的>
    < ASP:ListView控件ID =displayitems=服务器的DataSourceID =SearchResult所的DataKeyNames =ID>
        < EmptyDataTemplate>
            <跨度>
                没有项目为< ASP:标签文本=''=服务器ID =ITEMNAME/>
            < / SPAN>
        < / EmptyDataTemplate>
        <&ItemTemplate中GT;
            < ASP:超链接ID =HyperLink1=服务器
                NavigateURL ='<%#Sale.aspx saleid =?+的eval(ID)%GT;'>
                < ASP:标签文本='<%#的eval(ITEMNAME)%>' =服务器ID =ItemNameLabel/> < BR />
            < / ASP:超链接>
        < / ItemTemplate中>
    < / ASP:的ListView>
< /身体GT;


解决方案

该消息意味着参数 ITEMNAME 未声明。尝试添加参数到的SqlDataSource

 < ASP:SqlDataSource的... OnSelecting =ds_Selecting>
    < SelectParameters>
        < ASP:参数名称=ITEMNAMETYPE =的Int32默认值=0/>
    < / SelectParameters>    ....
< / ASP:SqlDataSource的>

然后在code背后将其值设置:

 保护无效ds_Selecting(对象发件人,SqlDataSourceSelectingEventArgs E)
{
    e.Command.Parameters [0] .value的=值;
}

有设置使用 System.Web.UI.WebControls.Parameter 的派生类的价值很多选项,其中一些类并不需要code背后例如的asp:ControlParameter ASP:QueryStringParameter

I keep getting this error when trying to use @itemname in a SQL search query. The code should search the values in the SQL table and display them here. Thanks.

Must declare the scalar variable "@itemname".

Code for search.aspx:

<body>
    <asp:SqlDataSource ID="searchresults" runat="server"
        ConnectionString='<%$ ConnectionStrings:ConnectionString %>'
        SelectCommand="SELECT [ID], [itemname] FROM [reports] WHERE ([itemname] LIKE '%' + @itemname + '%')">
    </asp:SqlDataSource>
    <asp:ListView ID="displayitems" runat="server" DataSourceID="searchresults" DataKeyNames="ID">
        <EmptyDataTemplate>
            <span>
                No items for <asp:Label Text='' runat="server" ID="itemname" />
            </span>
        </EmptyDataTemplate>
        <ItemTemplate>
            <asp:HyperLink ID="HyperLink1" runat="server"
                NavigateURL='<%# "Sale.aspx?saleid=" + Eval("ID") %>'>
                <asp:Label Text='<%# Eval("itemname") %>' runat="server" ID="ItemNameLabel" /> <br />
            </asp:HyperLink>
        </ItemTemplate>
    </asp:ListView>
</body>

解决方案

The message means the parameter itemname is not declared. Try adding the parameter into the SqlDataSource

<asp:SqlDataSource ... OnSelecting="ds_Selecting">
    <SelectParameters>
        <asp:Parameter Name="itemname" Type="Int32" DefaultValue="0" />
    </SelectParameters>

    ....
</asp:SqlDataSource>

and then in the code behind set its value:

protected void ds_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    e.Command.Parameters[0].Value = "Value";
} 

There are many options for setting the value using derived classes of System.Web.UI.WebControls.Parameter, some of these classes do not require code behind, for example asp:ControlParameter or asp:QueryStringParameter.

这篇关于ASP.NET SQL搜索引擎错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆