在数据库里面是:
set sql='select   *from   CityTable   where   CName   like   %'''+@CName+'''%' 

解决方案 »

  1.   

      string   sql   =   "select   *from   CityTable   where   CName   like   '%"+@CName+"%'"; asp 要把那个+ 换成&
      

  2.   

    create table tb  (a varchar(200))
    insert into tb select 'abc'declare @str varchar(20),@sql varchar(100)
    set @str='b'
    set @sql=' select * from tb where a like ''%'+@str+'%'''
    exec(@sql)abc得连下字符串
      

  3.   

    string   sql   =   "select   *from   CityTable   where   CName   like   '%"+@CName+"%'"; 理解错了
      

  4.   

      string sql = "select *from CityTable where CName like '%"+@CName+"%'";或
    、 string sql = "select *from CityTable where CName like '%"&@CName&"%'";to 以上 3位,都有问题,首先在数据库中我会写,但是在程序当中就有问题了。to 无枪狙击手
         当前上下文 不存在  @CName,
    用 +,因为我的 @CName 先前并没有声明,肯定会报错假如我输入北京
    最后北京要 把 @CName 替换掉,才能运行  。
    string sql = "select *from CityTable where CName like '%北京%'";
    所以 说,我的  @CName 只是一个占位符 ,
    但是 写法有问题,请各位 再 帮我 想想
      

  5.   

    这是一个 非常完整的后台程序 
     string sql = "select *from CityTable where CName=@CName";
            SqlConnection conn = new SqlConnection("Server=.;Database=Northwind;uid=sa;pwd=");
            SqlParameter parm = new SqlParameter("@CName", SqlDbType.VarChar, 50);
            parm.Value = "aa";
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.Add(parm);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataSet ds = new DataSet();
            da.Fill(ds);
            this.GridView1.DataSource = ds;
            this.GridView1.DataBind();
    查询 数据库中 列CName 为 aa 的所有数据 ,并绑定到数据控件 ,
      现在 我想 改成 模糊查询 ,查询 包含 aa 的所有数据 string sql = "select *from CityTable where CName like '%@CName%'";
    这样写 不行 ,没有找到 结果,我调试看 ,发现 aa 并没有 把 @CName 替换掉,
    而是 查询的 列名为 @Cname 的字符串,??????所以这个字符串 该怎么写 ?
      

  6.   

    string cname='aa'
    string   sql   =   "select   *from   CityTable   where   CName='"+cname+"'";
    string       sql       =       "select       *from       CityTable       where      
     CName       like    '%"+cname+"%'";  
    都可以的
      

  7.   

    "select   *from   CityTable   where   CName   like   '%'+@CName+'%'" 这样呢,我一般只组合不在简单查询中用参数
      

  8.   

    写为存储过程调用:
    create proc test(@CName nvarchar(50))
    asexec('select       *from       CityTable       where       CName       like       ''%'+@CName+'%''')go
    exec test '参数'
      

  9.   

    ============
     我不要 在 sql 中写 
      

  10.   

    "select * from CityTable where CName like '%'"+@CName+"'%'"  
      

  11.   

     哎,没有明白 我的意思 、to  无枪狙击手"select   *   from   CityTable   where   CName   like   '%'"+@CName+"'%'"     在后台 asp.net  里面 连编译都 通不过。string   sql   =   "select   *from   CityTable   where   CName=@CName"; (正确)
    我用过 很多中 条件 查询 但是就是不会 模糊查询..........
    点击 按钮之后,然后连接 数据库 
    protected void Button1_Click(object sender, EventArgs e)
        {       
            string sql = "select *from CityTable where CName like '%@CName%'";        SqlConnection conn = new SqlConnection("Server=.;Database=Northwind;uid=sa;pwd=");
            SqlParameter parm = new SqlParameter("@CName", SqlDbType.VarChar, 50);
            parm.Value = "aa";
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.Add(parm);
            SqlDataAdapter da = new SqlDataAdapter();.........
                   
        }
      

  12.   

     为什么 只有 模糊查询 就错了  like   '%@CName%'"; 
     是 like 需要转义  还是 % 需要转 。
      

  13.   

      哎,没有明白   我的意思   、 to     无枪狙击手 "select       *       from       CityTable       where       CName       like       '%'"+@CName+"'%'"           在后台   asp.net     里面   连编译都   通不过。 string       sql       =       "select       *from       CityTable       where       CName=@CName";   (正确) 
    我用过   很多中   条件   查询   但是就是不会   模糊查询.......... 
    点击   按钮之后,然后连接   数据库    
    protected   void   Button1_Click(object   sender,   EventArgs   e) 
            {               
                    string   sql   =   "select   *from   CityTable   where   CName   like   '%@CName%'";                 SqlConnection   conn   =   new   SqlConnection("Server=.;Database=Northwind;uid=sa;pwd="); 
                    SqlParameter   parm   =   new   SqlParameter("@CName",   SqlDbType.VarChar,   50); 
                    parm.Value   =   "aa"; 
                    SqlCommand   cmd   =   new   SqlCommand(sql,   conn); 
                    cmd.Parameters.Add(parm); 
                    SqlDataAdapter   da   =   new   SqlDataAdapter();......... 
                                  
            } 
    -----------------------------我上面说过,在ASP中串相加是& ,而不是加号
    "select   *   from   CityTable   where   CName   like   '%'"&@CName&"'%'"  
      

  14.   

    string sql = "select *from CityTable where CName like '%'+@CName+'%'"; 
      

  15.   

    "select * from CityTable where CName like '%"+@CName+"%'"
    这个语句应该是这样的  你符号多了两个      
      

  16.   

    Sorry about the using English. 1) Here's how you do it:string   sql   =   "select   *from   CityTable   where   CName   like   @CName"; 
    ..... 
    SqlParameter   parm   =   new   SqlParameter("@CName",   SqlDbType.VarChar,   50); 
    cmd.Parameters.AddWithValue("@CName",  "%" +this.TextBox1.Text + "%");2) by doing a "like '%abc%', you will kill any index on the cname column and you will performance suffer as a result.  Use "like 'abc%'" if it works.
      

  17.   

    Err, got an extra line in my last post. No need to declare "parm" anymore with AddWithValue()string sql = "select * from CityTable where CName like  @CName";   
    cmd.Parameters.AddWithValue("@CName", "%"+this.TextBox1.Text+"%"); 
      

  18.   

    23楼应该能用,like的%中间加变量的方式出问题,我也遇到过,最好的办法是把带%的查询参数直接传到定义的变量里。
      

  19.   

    where Rel_name like '%'+@key+'%' order by ID desc
    写法如上一语句就可以进行模糊查询
      

  20.   

    comm.Connection = conn;
     SqlParameter pa = new SqlParameter("@name","%"+ Request.Params["Text1"]+"%");
     comm.Parameters.Add(pa);
     comm.CommandText = "select * from EMPLOYEES  where LAST_NAME like @name";
    这样也可以的
    不过老外就是NB啊