'w' 附近有语法错误。

bufrj 2012-02-22 03:05:02

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
conn.Open();
string s = Request.QueryString["keyword"].ToString();

string sql = "select * from News where newsTitle like '%" + s + "%' or newsContent like '" + s + "%' order by newsId desc";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "a");
int count = ds.Tables["a"].Rows.Count;
this.labMsg.Text = "搜索到:" + count + "记录";
dlNews.DataSource = ds.Tables["a"];
dlNews.DataBind();
conn.Close();
}
}


这是输入关键字搜索的功能,在文本框中输入关键字(比如“w”)以后,出现“'w' 附近有语法错误”这个提示,不知道sql语句哪里写的不正确,请教高手!急!!!(newsTitle和newsContent字段都是varchar类型)
...全文
207 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanlu0012 2012-02-23
  • 打赏
  • 举报
回复
加try catch,断点执行
bufrj 2012-02-22
  • 打赏
  • 举报
回复
谢谢各位!问题解决了,string s = Request.QueryString["keyword"].ToString().Repleace("'","");把单引号替换成空格。
叶子 2012-02-22
  • 打赏
  • 举报
回复
在文本框中输入关键字(比如“w”)输入w 不要加引号,有引号的话要进行替换处理。
  • 打赏
  • 举报
回复
string sql = "select * from News where newsTitle like '%" + s + "%' or newsContent like '%" + s + "%' order by newsId desc";
/*掉了一个%*/
zhangdaowu5 2012-02-22
  • 打赏
  • 举报
回复
最有效的是你把你跟到的SQL先放的数据库中去查询一下,没有问题的话再检查代码,有问题的话一眼也就可以找到是什么地方写错了!
l785228475 2012-02-22
  • 打赏
  • 举报
回复
看看SQL语句,格式,空格,引号,参数类型。
小基 2012-02-22
  • 打赏
  • 举报
回复
sql有问题呗
你把你的sql打出来到数据库执行一下看看 估计是传参不对
李班头 2012-02-22
  • 打赏
  • 举报
回复
断点看你的s显示的是什么值?
如果s有一对单引号就去掉
lijianyu_star 2012-02-22
  • 打赏
  • 举报
回复
断点调试,在及时窗口中查看你的s值是否有‘’
ZhuZhuYuXiang 2012-02-22
  • 打赏
  • 举报
回复
回答错地方了,

调试下,加上try catch 把错误抛出
ZhuZhuYuXiang 2012-02-22
  • 打赏
  • 举报
回复
google 搜索多文件上传
laowang134 2012-02-22
  • 打赏
  • 举报
回复
当然你得先判断Request.QueryString["keyword"]不为null;还有Request.QueryString["keyword"]本身就为string不用加.ToString();
ZhuZhuYuXiang 2012-02-22
  • 打赏
  • 举报
回复
调试跟踪变量s
string s = Request.QueryString["keyword"].ToString();
sql语句写的没有错,

bufrj 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jayinit 的回复:]
你传来的参数s是不是带引号啊
[/Quote]
Response.Redirect("SearchResult.aspx?keyword='"+this.tbSearch.Text+"'");

string s = Request.QueryString["keyword"].ToString();
laowang134 2012-02-22
  • 打赏
  • 举报
回复
string s = Request.QueryString["keyword"].ToString().Repleace("'","''");
  • 打赏
  • 举报
回复
你传来的参数s是不是带引号啊
bufrj 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lijianyu_star 的回复:]
string sql = @"select * from News where newsTitle like '%" + s + "%' or newsContent like '" + s + "%' order by newsId desc";
[/Quote]

也不可以。
断点调试,sql语句之后,复制sql语句在数据库中运行,出现:
"select * from News where newsTitle like '%'w'%' or newsContent like '%'w'%' order by newsId desc"
把w两边的单引号去掉:即“select * from News where newsTitle like '%'w'%' or newsContent like '%'w'%' order by newsId desc “改为”select * from News where newsTitle like '%w%' or newsContent like '%w%' order by newsId desc“,出现正确结果。但.cs页面中的那句sql语句怎么写才是正确的呢?前面加一个@也没用。
  • 打赏
  • 举报
回复
果断--断点
lijianyu_star 2012-02-22
  • 打赏
  • 举报
回复
string sql = @"select * from News where newsTitle like '%" + s + "%' or newsContent like '" + s + "%' order by newsId desc";
ycproc 2012-02-22
  • 打赏
  • 举报
回复


不断点调试 直接看结果 然后提问

不适合写代码
加载更多回复(10)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧