首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

妖怪:为什么使用SqlDataSource时,一段语句放在前,数据显示;一段语句放在后,数据不显示?该如何处理

2012-01-20 
妖怪:为什么使用SqlDataSource时,一段语句放在前,数据显示;一段语句放在后,数据不显示?我的一个页面的Page

妖怪:为什么使用SqlDataSource时,一段语句放在前,数据显示;一段语句放在后,数据不显示?
我的一个页面的Page_Load如下:
  protected void Page_Load(object sender, EventArgs e)
  {
  string rid = "", manage = "";

  //判断用户是否登录
  if (Session["userid"].ToString() == "")
  {
  Response.Redirect("../Hint.aspx?HintText=请先登陆", false);
  return;
  }

  if (!this.Page.IsPostBack)
  {
  //是否从AddRecQue.aspx而来
  ViewState["sourcepage"] = Session["sourcepage"].ToString();
  Session["sourcepage"] = "";
  //显示数据
  LblUserName.Text = "当前用户:" + Session["username"].ToString();
   
  //特殊的一段
  manage = Request.QueryString["manage"];
  if (manage != "1") manage = "0";
  if (manage == "1")
  Panel_Read.Visible = false;
  else
  Panel_Manage.Visible = false;

  rid = Request.QueryString["rid"];
  SqlDataSource1.SelectParameters["DocID"].DefaultValue = rid;
   
  SqlDataSource2.SelectParameters["DocID"].DefaultValue = rid;
  SqlDataSource2.SelectParameters["manage"].DefaultValue = manage;
  if (ViewState["sourcepage"].ToString() != "")
  SqlDataSource2.SelectParameters["isadd"].DefaultValue="0";
  else
  SqlDataSource2.SelectParameters["isadd"].DefaultValue="1";
  SqlDataSource2.SelectParameters["userid"].DefaultValue = Session["userid"].ToString();
  SqlDataSource3.SelectParameters["DocID"].DefaultValue = rid;
  }
  }

如果把其中的一段话放在最后,和SqlDataSource2、SqlDataSource3相连的datalist数据就不显示,但是和SqlDataSource1相连的gridview没有影响,一直显示。
  protected void Page_Load(object sender, EventArgs e)
  {
  string rid = "", manage = "";

  //判断用户是否登录
  if (Session["userid"].ToString() == "")
  {
  Response.Redirect("../Hint.aspx?HintText=请先登陆", false);
  return;
  }

  if (!this.Page.IsPostBack)
  {
  //是否从AddRecQue.aspx而来
  ViewState["sourcepage"] = Session["sourcepage"].ToString();
  Session["sourcepage"] = "";
  //显示数据
  LblUserName.Text = "当前用户:" + Session["username"].ToString();
   
  rid = Request.QueryString["rid"];
  SqlDataSource1.SelectParameters["DocID"].DefaultValue = rid;
   
  SqlDataSource2.SelectParameters["DocID"].DefaultValue = rid;
  SqlDataSource2.SelectParameters["manage"].DefaultValue = manage;
  if (ViewState["sourcepage"].ToString() != "")
  SqlDataSource2.SelectParameters["isadd"].DefaultValue="0";


  else
  SqlDataSource2.SelectParameters["isadd"].DefaultValue="1";
  SqlDataSource2.SelectParameters["userid"].DefaultValue = Session["userid"].ToString();
  SqlDataSource3.SelectParameters["DocID"].DefaultValue = rid;

  //特殊的一段,原来放在当中,现在放在最后
  manage = Request.QueryString["manage"];
  if (manage != "1") manage = "0";
  if (manage == "1")
  Panel_Read.Visible = false;
  else
  Panel_Manage.Visible = false;
  }
  }

实在是不明白,为什么datalist有时显示,有时不显示?

[解决办法]
SqlDataSource2.SelectParameters["manage"].DefaultValue = manage; 
你这里面用到string变量manage了呀~ 放后面肯定查询的结果不一样了
[解决办法]
SqlDataSource2.SelectParameters["manage"].DefaultValue = manage; 
定义了后变量值可能发生了变化,你可以通过跟踪调试值就知道了
[解决办法]
SqlDataSource2.SelectParameters["manage"].DefaultValue = manage;
你这里面用到string变量manage了呀~ 放后面肯定查询的结果不一样了
manage还没定义了
你是在后面定义的

热点排行