select * from dbo.[Report] where  ID  like %1% or Report_num  like %1% or ID  like %ehs% or Report_num  like %ehs% order by ID ;消息 102,级别 15,状态 1,第 1 行
'1' 附近有语法错误。

解决方案 »

  1.   

    select * from dbo.[Report] where ID like '%1% 'or Report_num like '%1% 'or ID like '%ehs% 'or Report_num like' %ehs%' order by ID 
      

  2.   

    select * 
    from dbo.[Report] 
    where ID like '%1% 'or Report_num like '%1%' 
      or ID like '%ehs%' or Report_num like '%ehs%' 
    order by ID 
      

  3.   

    select * 
    from dbo.[Report] 
    where ID like '%1%' or Report_num like '%1%' 
      or ID like '%ehs%' or Report_num like '%ehs%' 
    order by ID 
    LIKE后面加引号,同时注意引号内不能有空格,除非特殊需要。
      

  4.   

    这个单引号我后来自己也找出来了,但现在是我的语句在数据库里可以运行,在C#编译器里就不行了。详细语句见下:
    select * from dbo.[Report] where  ID  like '%1%' or Report_num  like '%1%' or ID  like '%ehs%' or Report_num  like '%ehs%' order by ID ;
    在数据库没问题。在vs2005里,代码如下: string result="ID  like '%1%' or Report_num  like '%1%' or ID  like '%ehs%' or Report_num  like '%ehs%'";
    //加起来就是上面的语句
     string ss = @"select * from dbo.[Report] where " + result + " order by ID ";
     DataTable  dt =Search(ss);//然后直接把语句传到一个函数里执行
     public DataTable Search(string sqlstr)
            {
                DataTable dt;
                string sql = sqlstr;
                Console.Write(sql);
                dt = ExecuteSqlReader(sql);
                return dt ;
            }报错:对象名 'dbo.Report' 无效。
      

  5.   


    use 数据库名
    go
    select * from sysobjects where name='Report'这个先看看有没有返回结果?