string strSql = "(select t.id,t.coursename,t.image,tt.tagword from dlcourse t,dlcoursetag tt on t.id = tt.courseid where ((t.id like '%" + searchWord + "%') or (t.coursename like '%" + searchWord + "%') or (t.content like '%" + searchWord + "%') or (t.catogery like '%" + searchWord + "%') or (t.coursedesc like '%" + searchWord + "%') or (t.kechengtedian like '%" + searchWord + "%') or (tt.tagword like '%" + searchWord + "%')))";
写的一段数据库搜索代码,在Visual Studio中总是提示 缺少右括号。但是我检查了括号是匹配的啊!
或者 哪位给我说一下 怎么做网站的搜索啊? 给个思路就可以了Error in LoadDataSetfromSql method. SQL is: (select t.id,t.coursename,t.image,tt.tagword from dlcourse t,dlcoursetag tt on t.id = tt.courseid where ((t.id like '%对话%') or (t.coursename like '%对话%') or (t.content like '%对话%') or (t.catogery like '%对话%') or (t.coursedesc like '%对话%') or (t.kechengtedian like '%对话%') or (tt.tagword like '%对话%')))ORA-00907: 缺少右括号Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Exception: Error in LoadDataSetfromSql method. SQL is: (select t.id,t.coursename,t.image,tt.tagword from dlcourse t,dlcoursetag tt on t.id = tt.courseid where ((t.id like '%对话%') or (t.coursename like '%对话%') or (t.content like '%对话%') or (t.catogery like '%对话%') or (t.coursedesc like '%对话%') or (t.kechengtedian like '%对话%') or (tt.tagword like '%对话%')))ORA-00907: 缺少右括号

解决方案 »

  1.   

    select t.id,t.coursename,t.image,tt.tagword from dlcourse t,dlcoursetag tt on t.id = tt.courseid where 
    -->
    select t.id,t.coursename,t.image,tt.tagword from dlcourse t,dlcoursetag tt where t.id = tt.courseid and 
      

  2.   


    string strSql = "(select t.id,t.coursename,t.image,tt.tagword from dlcourse t join dlcoursetag tt on t.id = tt.courseid where ((t.id like '%" + searchWord + "%') or (t.coursename like '%" + searchWord + "%') or (t.content like '%" + searchWord + "%') or (t.catogery like '%" + searchWord + "%') or (t.coursedesc like '%" + searchWord + "%') or (t.kechengtedian like '%" + searchWord + "%') or (tt.tagword like '%" + searchWord + "%')))";
      

  3.   


    string strSql = "(select t.id,t.coursename,t.image,tt.tagword from dlcourse t left join dlcoursetag tt on t.id = tt.courseid where ((t.id like '%" + searchWord + "%') or (t.coursename like '%" + searchWord + "%') or (t.content like '%" + searchWord + "%') or (t.catogery like '%" + searchWord + "%') or (t.coursedesc like '%" + searchWord + "%') or (t.kechengtedian like '%" + searchWord + "%') or (tt.tagword like '%" + searchWord + "%')))";string strSql = "(select t.id,t.coursename,t.image,tt.tagword from dlcourse t right join dlcoursetag tt on t.id = tt.courseid where ((t.id like '%" + searchWord + "%') or (t.coursename like '%" + searchWord + "%') or (t.content like '%" + searchWord + "%') or (t.catogery like '%" + searchWord + "%') or (t.coursedesc like '%" + searchWord + "%') or (t.kechengtedian like '%" + searchWord + "%') or (tt.tagword like '%" + searchWord + "%')))";string strSql = "(select t.id,t.coursename,t.image,tt.tagword from dlcourse t full join dlcoursetag tt on t.id = tt.courseid where ((t.id like '%" + searchWord + "%') or (t.coursename like '%" + searchWord + "%') or (t.content like '%" + searchWord + "%') or (t.catogery like '%" + searchWord + "%') or (t.coursedesc like '%" + searchWord + "%') or (t.kechengtedian like '%" + searchWord + "%') or (tt.tagword like '%" + searchWord + "%')))";
      

  4.   

    使用了join的话 那么就是用on来指定两个表的连接条件
    如果没有使用的话 那么要在where子句中指定
      

  5.   

    string strSql = "select t.id,t.coursename,t.image,tt.tagword from dlcourse t , dlcoursetag tt where t.id = tt.courseid and ((t.id like '%" + searchWord + "%') or (t.coursename like '%" + searchWord + "%') or (t.content like '%" + searchWord + "%') or (t.catogery like '%" + searchWord + "%') or (t.coursedesc like '%" + searchWord + "%') or (t.kechengtedian like '%" + searchWord + "%') or (tt.tagword like '%" + searchWord + "%'))";