问题描述
protectedvoidsearch_Click1(objectsender,EventArgse){if(titles.Text.Trim().Length>0){///构建数据库连接和删除新闻的SQL语句SqlConnectionmyConnection=newSqlConnection(DataBaseDB.ConnectionString);StringcmdText="selectTitleFROMNewsWHERETitlelike'"+titles.Text+"'";SqlCommandmyCommand=newSqlCommand(cmdText,myConnection);///打开数据库连接并执行删除操作myConnection.Open();SqlDataReaderrecn=myCommand.ExecuteReader(CommandBehavior.CloseConnection);while(recn.Read()){TextBox1.Text=recn["Title"].ToString();TextBox1.Text=recn["Body"].ToString();GridView1.DataSource=recn;}recn.Close();
解决方案
解决方案二:
StringcmdText="selectTitleFROMNewsWHERETitlelike'"+titles.Text+"'";
试下看看加入titles.Text是单引号时啥效果~~哈哈~~
解决方案三:
StringcmdText="selectTitleFROMNewsWHERETitlelike'%"+titles.Text+"%'";这样就可以模糊查询,不过用这种方法如果输入'"什么的特殊符号会出错,建议改用参数传递方法
解决方案四:
运行时不报错,就是在girdview里显示不出来,但是在lable里就能显示,只不过只能显示一条,要是能显示多条,我用lable也凑活了
解决方案五:
selectTitleFROMNewsWHERETitlelike'%"+titles.Text+"'%";楼上说的是安全问题啦。比较安全的做法是过滤掉不安全的字符如:titles.Text.Replace("'","").Replace("%","");