string sql = "select *from CityTable where CName like '%"+@CName+"%'"; asp 要把那个+ 换成&
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得连下字符串
string sql = "select *from CityTable where CName like '%"+@CName+"%'"; 理解错了
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 只是一个占位符 , 但是 写法有问题,请各位 再 帮我 想想
这是一个 非常完整的后台程序 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 的字符串,??????所以这个字符串 该怎么写 ?
string cname='aa' string sql = "select *from CityTable where CName='"+cname+"'"; string sql = "select *from CityTable where CName like '%"+cname+"%'"; 都可以的
"select *from CityTable where CName like '%'+@CName+'%'" 这样呢,我一般只组合不在简单查询中用参数
写为存储过程调用: create proc test(@CName nvarchar(50)) asexec('select *from CityTable where CName like ''%'+@CName+'%''')go exec test '参数'
============ 我不要 在 sql 中写
"select * from CityTable where CName like '%'"+@CName+"'%'"
哎,没有明白 我的意思 、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();.........
}
为什么 只有 模糊查询 就错了 like '%@CName%'"; 是 like 需要转义 还是 % 需要转 。
哎,没有明白 我的意思 、 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&"'%'"
string sql = "select *from CityTable where CName like '%'+@CName+'%'";
"select * from CityTable where CName like '%"+@CName+"%'" 这个语句应该是这样的 你符号多了两个
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.
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+"%");
where Rel_name like '%'+@key+'%' order by ID desc 写法如上一语句就可以进行模糊查询
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啊
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得连下字符串
、 string sql = "select *from CityTable where CName like '%"&@CName&"%'";to 以上 3位,都有问题,首先在数据库中我会写,但是在程序当中就有问题了。to 无枪狙击手
当前上下文 不存在 @CName,
用 +,因为我的 @CName 先前并没有声明,肯定会报错假如我输入北京
最后北京要 把 @CName 替换掉,才能运行 。
string sql = "select *from CityTable where CName like '%北京%'";
所以 说,我的 @CName 只是一个占位符 ,
但是 写法有问题,请各位 再 帮我 想想
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 的字符串,??????所以这个字符串 该怎么写 ?
string sql = "select *from CityTable where CName='"+cname+"'";
string sql = "select *from CityTable where
CName like '%"+cname+"%'";
都可以的
create proc test(@CName nvarchar(50))
asexec('select *from CityTable where CName like ''%'+@CName+'%''')go
exec test '参数'
我不要 在 sql 中写
我用过 很多中 条件 查询 但是就是不会 模糊查询..........
点击 按钮之后,然后连接 数据库
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();.........
}
是 like 需要转义 还是 % 需要转 。
我用过 很多中 条件 查询 但是就是不会 模糊查询..........
点击 按钮之后,然后连接 数据库
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&"'%'"
这个语句应该是这样的 你符号多了两个
.....
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.
cmd.Parameters.AddWithValue("@CName", "%"+this.TextBox1.Text+"%");
写法如上一语句就可以进行模糊查询
SqlParameter pa = new SqlParameter("@name","%"+ Request.Params["Text1"]+"%");
comm.Parameters.Add(pa);
comm.CommandText = "select * from EMPLOYEES where LAST_NAME like @name";
这样也可以的
不过老外就是NB啊