描述:左边一个TreeView控件,右边一个iframe,iframe里面一个B页面(B页面里一个GridView控件)
实现:选择某节点,显示于某节点相对应的数据。//TreeView选中节点
private string XuanZeNode = string.Empty;
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        XuanZeNode = TreeView1.SelectedNode.Text.ToString();
        Response.Redirect("GoodsSearchBodyData.aspx?type='" +XuanZeNode + "'");
    }B页面
 
 private string typeStr = string.Empty;
 private void DataBindGoods()
    {
        if (Request.QueryString["type"] != null)
        {
            typeStr=Request.QueryString["type"].ToString();
            string sqlStr = "select * from T_goods where F_Type='" + typeStr + "'";
            try
            {
                GridView1.DataSource=DB.GetDS(sqlStr);
                GridView1.DataBind();
            }
            catch (Exception)
            { 
                throw;
            }
        }
    }错误:Access语法错误 操作符丢失,select * from T_goods where F_Type='" + typeStr + "'加断点后 发现值过来了呀?? 什么原因,难道这句SQL语句有错嘛?

解决方案 »

  1.   

    string sqlStr = "select * from T_goods where F_Type='" + typeStr + "'"; 
    得到的sqlStr什么 
      

  2.   

    F_Type是什么类型的 不要用单引号
      

  3.   


    select * from T_goods where F_Type='' 西安''你看值是不是 已经过来了郁闷DAL:public static DataSet GetDS(string sqlStr)
        {
            OleDbConnection sqlConn = DB.CreateConn();
            sqlConn.Open();
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter();
            da.SelectCommand = new OleDbCommand();
            da.SelectCommand.Connection = sqlConn;
            da.SelectCommand.CommandType = CommandType.Text;
            da.SelectCommand.CommandText = sqlStr;
            da.Fill(ds,"table");//就是在这报的错
            sqlConn.Close();
            return ds;
        }
      

  4.   

    select * from T_goods where F_Type='' 西安'' 怎么有两个单引号啊???当然错了
    把这里的单引号去掉:
     Response.Redirect("GoodsSearchBodyData.aspx?type='" +XuanZeNode + "'"); 
      

  5.   

    select * from T_goods where F_Type='' 西安'' 
    单引号只是一个错误还有个错误就是 你看那个 西安前面 多了个空格.....我就不明白TreeView的节点 西安 没有空格的呀...选中后 竟然莫名其妙多了个那玩意所以我想问的是:TreeView选中节点后TreeView1.SelectedNode.Text这个值是不是 都多了个空格真是郁闷
      

  6.   

    使用target="main"绑定到页面
    string s="select * from T_goods where F_Type=' 西安'" 
    Response.Redirect("GoodsSearchBodyData.aspx?type=" +XuanZeNode + ""); 
      

  7.   

    TreeNode newNode = new TreeNode();
    ....
    newNode.Target = "Frm";//定位到IFRAME框架在TreeView1_SelectedNodeChanged事件中该怎么写? 实现选中某节点,iframe里显示某节点相关的数据这样不行..
     newNode.NavigateUrl = "GoodsSearchBodyData.aspx?type='" + XuanZeNode + "'";
     protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            XuanZeNode = TreeView1.SelectedNode.Text.ToString();
        }