加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 添加SqlParameter绑定LIKE’%@ x%'[复制]

发布时间:2020-12-15 08:25:14 所属栏目:百科 来源:网络整理
导读:参见英文答案 Use of SqlParameter in SQL LIKE clause not working3个 我在获取以下代码以正确添加SqlCommand参数@vendor时遇到问题.由于某种原因,传递的查询似乎总是: select TOP 500 * from [mike_db].[dbo].[na_pe_sql_import] where vendname like '%@
参见英文答案 > Use of SqlParameter in SQL LIKE clause not working3个
我在获取以下代码以正确添加SqlCommand参数@vendor时遇到问题.由于某种原因,传递的查询似乎总是:
select TOP 500 * 
from [mike_db].[dbo].[na_pe_sql_import] 
where vendname like '%@vendor%';

如果我像这样设置查询,它可以工作,但我知道这是不好的做法:

string strQuery = "select TOP 500 * from [mike_db].[dbo].[na_pe_sql_import] where vendname like '%"+txt_search.Text.ToString()+"%';";

这是代码:

protected void Search_Click(object sender,EventArgs e)
    {   
        string search = txt_search.Text.ToString();
        String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["mike_db"].ConnectionString;

        SqlConnection con = new SqlConnection(strConnString);
        con.Open();

        string strQuery = "select TOP 500 * from [mike_db].[dbo].[na_pe_sql_import] where vendname like '%@vendor%';";

        cmd = new SqlCommand(strQuery,con);
        cmd.Parameters.AddWithValue("vendor",search);

        txt_search.Text = string.Empty;

        DataSet ds = new DataSet();

        da = new SqlDataAdapter(cmd);
        da.Fill(ds);

        My_Repeater.DataSource = ds;
        My_Repeater.DataBind();

        con.Close();            
    }

解决方法

我认为@vendor在您的查询中被视为文字,而不是参数.

尝试按如下方式定义查询:

string strQuery =
   "select TOP 500 * from [mike_db].[dbo].[na_pe_sql_import] where vendname like '%' + @vendor + '%'";

然后添加如下参数:

cmd.Parameters.AddWithValue("@vendor",search);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读