'(' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: '(' 附近有语法错误。源错误: 
行 26:         DataSet myds = new DataSet();
行 27:         sqlcon.Open();
行 28:         myda.Fill(myds, "Teacher");注:红色显示
行 29:         GridView1.DataSource = myds.Tables["Teacher"];
行 30:         GridView1.DataBind();
 
代码:string sqlstr = String.Format(@"SELECT * FROM Teacher WHERE ( {0}= '{1} ' and {2}='{3}' and {4}='{5}'" ,DropDownList1.SelectedValue,TextBox1.Text,DropDownList2.SelectedValue, TextBox2.Text,DropDownList3.SelectedValue, TextBox3.Text);
       
        sqlcon = new SqlConnection(strCon);
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds = new DataSet();
        sqlcon.Open();
        myda.Fill(myds, "Teacher");
        GridView1.DataSource = myds.Tables["Teacher"];注:Teacher为数据表名
        GridView1.DataBind();
        sqlcon.Close();

解决方案 »

  1.   

    >>>>SELECT * FROM Teacher WHERE ( {0}= '{1} ' and {2}='{3}' and {4}='{5}'
    sql语这样写对吗?
      

  2.   

    你把最终的 sqlstr 显示出来,或者放到数据库查询中试试,就很快找到问题了
      

  3.   

    sqlstr应该没错,
    我的绑定是不是有问题
    myda.Fill(myds, "Teacher");
    这个teacher我的是数据库中得数据表名,应该是什么
      

  4.   

    断点,单步看看 sqlstr ,在查询分析器中执行
      

  5.   

    是sql 问题 与myda.Fill(myds, "Teacher");与Teacher表无关。
      

  6.   

    行 28: myda.Fill(myds, "Teacher");注:红色显示
    应该是myds.Fill()吧
    你的   DataSet myds = new DataSet();
    是  myds 啊 
      

  7.   


    拜托人家 myda是 SqlDataAdapter 别误导人家,人家这样这样写是正确的,你还是回去翻下书。
      

  8.   

    O(∩_∩)O哈哈~我第一次看楼主那么1 2 3 4 来回= 你直接参数化。SqlParameter
      

  9.   

    用数据库的事件探测器 试试,看看执行的sql语句哪里出错
      

  10.   

     WHERE ( {0}这个括号是中文的吧