我是这样想的,从另一页面中传过来了articleid,
然后我通过一个数据查询,查到他的typeid,
接着我用上面的typeid字段作为查询条件,
继续查询
提示标准表达式中数据类型不匹配?
主要代码如下
public void Page_Load(object sender, EventArgs e)
    {
        string StrConn = "Provider=Microsoft.Jet.OleDb.4.0;";
        StrConn += @"Data Source=F:\film_plaer\video\mdb\zerotea.asp";
        
        OleDbConnection ObjConn = new OleDbConnection(StrConn);
        ObjConn.Open();        string str_Sql1="SELECT [typeid] FROM [learning] WHERE ([articleid] ='" + Request.QueryString["articleid"] + "');";
        OleDbCommand cm = new OleDbCommand(str_Sql1, ObjConn);
        OleDbDataReader dr = cm.ExecuteReader();//标准表达式中数据类型不匹配
        string str_Sql2 = "SELECT TOP 20 * FROM [learning] WHERE ([typeid] ='" + dr["typeid"] + "') ;";
        
        // read
        OleDbDataAdapter objAdapter = new OleDbDataAdapter(str_Sql2, ObjConn);
        DataSet objDataSet = new DataSet();
        objAdapter.Fill(objDataSet);
        GridView1.DataSource=objDataSet;
        GridView1.DataBind();        
        //Close DataBase
        ObjConn.Close();

解决方案 »

  1.   

    string str_Sql1="SELECT [typeid] FROM [learning] WHERE [articleid] =" + Request.QueryString["articleid"];
      

  2.   

    你的[articleid]不是字符型的吧
      

  3.   

    我猜也不是字符型的
    string str_Sql1="SELECT [typeid] FROM [learning] WHERE [articleid]="+Request.QueryString["articleid"];
    要是字符型的:
    string str_Sql1="SELECT [typeid] FROM [learning] WHERE [articleid]='"+Request.QueryString["articleid"]+"'";
      

  4.   

    首先你要确定articleid的类型
    如果articleid是字符型的:
    string str_Sql1="SELECT [typeid] FROM [learning] WHERE [articleid] ='" + Request.QueryString["articleid"] + "'";
    如果articleid是数字型的:
    string str_Sql1="SELECT [typeid] FROM [learning] WHERE [articleid] =" + Request.QueryString["articleid"];
    而且必须确定Request["articleid"]不为null或"";