none
datatable使用?或者不了信息 RRS feed

  • 问题

  • 用户登录成功后,通过session获取用户的信息,是怎么实现的呢?

    以下我自己写的一段代码,知道错的地方就不知道怎么去修改的.代码如下

    UI层
     protected void Page_Load(object sender, EventArgs e)
        {
          string u_id = Session["user_id"].ToString();
          Response.Write(u_id);
    
          usersBLL ubl = new usersBLL();
          usersModel uml = new usersModel();
          uml.usersID = u_id;
          DataTable ds = ubl.dtBll(uml);
    
          Response.Write(ds.Rows[0]["users_id "].ToString());
    
    
    
    DAl层
     public DataTable getInf(string sql) {
    
          SqlConnection con = new SqlConnection(sqlHelp);
          con.Open();
    
          DataTable dt = new DataTable();
          SqlDataAdapter sda = new SqlDataAdapter(sql,con);
    
          sda.Fill(dt);
          return dt;
           
        }
    
    BLL层
     public DataTable dtBll(usersModel U_id) {
          string sql = "select * from users_t where users_id='"+U_id+"'";
          usersDal uDal = new usersDal();
          return uDal.getInf(sql);
        }
    
    

    下面是错误提示
    在位置
    0 处没有任何行。
    Response.Write(ds.Rows[0]["users_id "].ToString());

    you are welcome
    2011年3月26日 7:23

答案

全部回复

  • 1.page_load这个事件注意,如果不是每次回发都要执行,需要使用ispostback标志判断。

    你先加个if看看。

    然后在看看是否能看到u_id被输出出来,如果可以,就没问题了。

     


    family as water
    2011年3月26日 8:40
  • 1.page_load这个事件注意,如果不是每次回发都要执行,需要使用ispostback标志判断。

    你先加个if看看。

    然后在看看是否能看到u_id被输出出来,如果可以,就没问题了。

     


    family as water


    还是不先啊,还是之前的提示

    在位置 0 处没有任何行。


    you are welcome
    2011年3月26日 9:35
  • 如果没有加上if(!IsPostBack){

    代码...

    }//页面什么都是空的

     

    如果加了一个 if(!IsPostBack){

     代码....

    }   //运行的结果

    在位置 0 处没有任何行。
    Response.Write(ds.Rows[0]["users_id "].ToString());


    you are welcome
    2011年3月26日 9:40
  • 请设置断点,单步调试,看看你最后生成的Sql语句是否正确。



    理解的越多,需要记忆的就越少
    2011年3月26日 12:03
    版主
  • 请设置断点,单步调试,看看你最后生成的Sql语句是否正确。



    理解的越多,需要记忆的就越少


    看这里的sq语句是没错的

    代码如下

     public DataTable dtBll(usersModel U_id) {
          string sql = "select * from users_t where users_id='"+U_id+"'";
          usersDal uDal = new usersDal();
          return uDal.getInf(sql);
        }


    you are welcome
    2011年3月27日 3:47
  • Response.Write(ds.Rows.count);

    看看rows是几行,如果=0 ,就应该按照我的说法检查:
    Response.Write(u_id);
    这里u_id是多少,是否在数据库存在。

     


    family as water
    2011年3月27日 5:20
  • Response.Write(ds.Rows.count);

    看看rows是几行,如果=0 ,就应该按照我的说法检查:
    Response.Write(u_id);
    这里u_id是多少,是否在数据库存在。

     


    family as water

     

    多谢各位的帮助,小弟明白了。

    小弟的明白怎么做了,以下是小弟测试过的帖子,多谢各位!

    http://topic.csdn.net/u/20110326/08/693ce5de-c3d6-4540-973c-cc2dcb347544.html


    you are welcome
    2011年3月27日 7:12