CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求教:关于sqlCommand语句

楼主zhaosile()2005-05-09 22:27:37 在 .NET技术 / ASP.NET 提问

 
  我构造了一条查询语句,主要的语句如下  
   
  sqlcommand   myCommand=new   sqlCommand("select   ID   from   news   where   title=abc",myConnection);  
   
  具体的代码和报告的错误如下,请问该怎么做呢?  
   
  string   sqlstring;  
   
  //news表已经建好  
  sqlstring="select   ID   from   news   where   title=";  
   
  string   search="abc";  
   
  //是不是下面这条语句有问题呢?该怎么写呢  
  sqlstring+=search;  
   
  //myConnection已经建立  
  myConnection.open();  
  sqlCommand   myCommand;  
  myCommand=new   sqlCommand(sqlstring,myConnection);  
   
  SqlDataReader   myDataReader;  
  myDataReader=myCommand.ExecuteReader();  
   
  然后就报错了,  
   
  下面这条语句出错了  
  myDataReader=myCommand.ExecuteReader();  
   
  异常详细信息:   System.Data.SqlClient.SqlException:   列名   'abc'   无效。  
   
  我觉得是sqlstring+=search;这条语句错了,可又不知道该怎么写,该怎么写呢?  
   
  谢谢  
   
   
  问题点数:20、回复次数:9Top

1 楼stevenhzj(潇湘冷月)回复于 2005-05-09 22:30:46 得分 5

sqlstring   +=   +"'"search   +"'";Top

2 楼zhaosile()回复于 2005-05-09 22:42:47 得分 0

谢谢stevenhzj,我试了一下,  
  好像应该是   sqlstring+="'"+search+"'";  
   
  还有一个问题,如果我想实现模糊查找,select语句的条件该怎么写呢?  
  比如我想查找,标题中包含有"ab"的项,  
   
  select   ID   from   news   where   title=*ab*    
  这么写可以吗?  
   
  谢谢    
   
  Top

3 楼flyye_cs(一叶孤舟)回复于 2005-05-09 22:45:04 得分 10

sqlstring+="'"+search+"'";Top

4 楼flyye_cs(一叶孤舟)回复于 2005-05-09 22:46:26 得分 0

简单点的  
  select   ID   from   news   where   title   like   '%abc%'Top

5 楼smx717616(又笨又不努力)回复于 2005-05-09 22:48:41 得分 5

string   search="abc";  
  sqlcommand   myCommand=new   sqlCommand("select   ID   from   news   where   title='"   +   search   +   "'",myConnection);  
  就是固定的用法,记住就行了,   遇到变量   单引号+双引号+连接符   变量   后面与前面对称就行了。Top

6 楼smx717616(又笨又不努力)回复于 2005-05-09 22:49:47 得分 0

string   search="%"+"abc"+"%";  
  sqlcommand   myCommand=new   sqlCommand("select   ID   from   news   where   title='"   +   search   +   "'",myConnection);  
  Top

7 楼flyye_cs(一叶孤舟)回复于 2005-05-09 22:53:53 得分 0

复杂一点的  
   
  string   SafeSQL(string   str)   //过滤LIKE子句中的特殊字符  
  {  
  string   s=str.Replace("[","[[]");  
  s=s.Replace("%","[%]");  
  s=s.Replace("_","[_]");  
  return   s;  
  }  
   
   
  ...  
  string   search="abc";  
  string   str="SELECT   ID   FROM   news   WHERE   title   LIKE   @title";  
  SqlCommand   cmd=new   SqlCommand(str,myConnection);  
  cmd.Parameters.Add("@title",SqlDbType.NVarChar,50).Value="%"+SafeSQL(search)+"%";  
  SqlDataReader   myDataReader;  
  myDataReader=cmd.ExecuteReader();  
  ...  
  Top

8 楼zhaosile()回复于 2005-05-09 22:56:02 得分 0

谢谢flyye_cs,我实现了。还有别的模糊匹配的方法吗?Top

9 楼flyye_cs(一叶孤舟)回复于 2005-05-09 23:13:45 得分 0

比较多,你可以查查SQL   Server联机众书,很有用的东西...   (装了SQL   Server就自带了的)Top

相关问题

  • 如何判断SqlCommand cm=new SqlCommand (mysql,cn);语句中对象cm是否为空????
  • SqlCommand在debug的时候的问题,怎么才能显示正确的语句
  • 为什么这种SQL语句在VB.NET的SQLCommand或ODBCCommand中不能执行?
  • sql语句的问题?SqlCommand1=new SqlCommand("sp_addArticleHints",SqlConnection1); 中的"sp_addArticleHints",代表什么?
  • SqlCommand执行的Sql语句中不能包含在SQL Server中自定义的函数吗?多谢!
  • 用SqlCommand时,查询语句如何写才能返回表中字段的信息
  • 求SQL语句
  • 延时语句
  • sql语句。
  • sql语句?

关键词

  • 语句
  • search
  • sqlstring
  • sqlcommand
  • mydatareader
  • mycommand
  • myconnection
  • 谢谢
  • abc
  • executereader

得分解答快速导航

  • 帖主:zhaosile
  • stevenhzj
  • flyye_cs
  • smx717616

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo