这段SQL语句中,实际a=500,是有数据的,但是结果运行到da1的时候错误了,如果用select * from wenshu 就不会错,带where id=变量的时候错了。那么sql语句到底错在哪里?        string a = Request["id"];
        if (a != null )
        {
        string strConn1 = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|tax.mdb;Persist Security Info=True";
        OleDbConnection myConnection1 = new OleDbConnection();
        myConnection1.ConnectionString = strConn1;
        string strCommand1 = "SELECT * FROM [wenshu] where id= '"+a+"'";
        OleDbDataAdapter da1 = new OleDbDataAdapter(strCommand1, myConnection1);
        DataSet ds1 = new DataSet();
        da1.Fill(ds1, "wenshu");       DataList1.DataSource = ds1.Tables["wenshu"].DefaultView;
       DataList1.DataBind();

解决方案 »

  1.   

    id字段如果是数值类型的话,应该是:
    string strCommand1 = "SELECT * FROM [wenshu] where id= "+a;
      

  2.   

    sql=".....where id="+a; a不能加引号。
      

  3.   

    可以加引号 你的id 是关键字 要[id]string strCommand1 = "SELECT * FROM [wenshu] where [id]= '"+a+"'";
      

  4.   


    string a = Request["id"];
      if (a != null )
      {
      string strConn1 = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|tax.mdb;Persist Security Info=True";
      OleDbConnection myConnection1 = new OleDbConnection();
      myConnection1.ConnectionString = strConn1;
      string strCommand1 = "SELECT * FROM [wenshu] where [id]= "+int.Parse(a);
      OleDbDataAdapter da1 = new OleDbDataAdapter(strCommand1, myConnection1);
      DataSet ds1 = new DataSet();
      da1.Fill(ds1, "wenshu");  DataList1.DataSource = ds1.Tables["wenshu"].DefaultView;
      DataList1.DataBind();
      

  5.   

    原来ID是关键字啊。是SqlServer的吗?
      

  6.   

    结果测试以下都可以,但是建议加上[]。养成好习惯哦!!1、string strCommand1 = "SELECT * FROM [wenshu] where [id]= "+int.Parse(a);
    2、string strCommand1 = "SELECT * FROM [wenshu] where  id= "+a;
    3、string strCommand1 = "SELECT * FROM [wenshu] where [id]= '"+a+"'";
    4、string strCommand1 = "SELECT * FROM [wenshu] where [id]= "+a+"";
    5、string strCommand1 = "SELECT * FROM [wenshu] where  id= "+a+"";