.net学习总结(3)之数据绑定,DropDownList控件

11. 报错:System.NullReferenceException: 未将对象引用设置到对象的实例
错误原因:在调用 Session["userid"].ToString() 前应先检查Session["userid"] 对象是否为 null ,在未登录或者过期的情况下, Session["userid"]  的值是null,直接用ToString()方法就会出现以上的报错。


12. 错误:使用DropDownList控件从数据库中绑定数据,把选定的内容提取时,出现一个错误,无论选择哪个项,总是把第一个条目显示为被选条目。
错误原因: 在Page_Load()事件中没有包含IsPostBack检查,因为DropDownLisr控件绑定的数据是在Page_Load()中定义的,当每次提交时绑定到条目集合都要重新初始化,所以返回总是绑定的默认的第一条目。解决方法使用IsPostBack检查是否执行回传:

  1. void Page_Load(object sender, EventArgs e)
  2.  {
  3.   if (!this.IsPostBack)
  4.         {
  5.             绑定的控件
  6.         }
  7.     }

Page.ISPostBack属性介绍:该属性用于检查页面是否已经回传给服务器,Page_Load()事件处理程序中的代码仅在页面第一次加载时执行。当页面再次回传时,IsPostBack返回True,Page_Load()处理程序中的代码被跳过。

13. DropDownList如何绑定数据。

  1. protected void Page_Load(object sender, EventArgs e)
  2.     {
  3.         if (!this.IsPostBack)
  4.          {
  5.             string sqlh = "select userID from [user]";//数据语句
  6.             DataSet han = sqlcontrol.maifang(sqlh);//sqlcontrol.maifang(sqlh)返回数据集,在此不在列出。
  7.             DropDownList1.DataSource = han;//把数据集绑定到DropDownList1数据源
  8.             DropDownList1.DataTextField = "userID";//userID是数据库中的字段,也是显示在DropDownList1上的条目
  9.             DropDownList1.DataValueField = "userID";
  10.             DropDownList1.DataBind();
  11.          }
  12.  }     

 

14. 上面数据绑定有一个问题,就是绑定的全是数据库的内容,说明白点就是少了"----请选择XXX-------“此项,如何添加此项呢?有些方法,以下是网上搜到的。
以pubs库的jobs表为例子,我们在显示时显示job_desc字段,values值绑定job_id字段。
方法一:
使用属性设置,我们在DropDownList的items的属性中添加一列为”----请选择XXX-------“,然后更改AppandBataBoundItems属性为ture.
绑定代码:

  1. 1 SqlConnection conn = new SqlConnection("server=.;uid=sa;database=pubs");
  2. 2 SqlDataAdapter dap = new SqlDataAdapter("select * from jobs", conn);
  3. 3 DataTable dt = new DataTable();
  4. 4 dap.Fill(dt);
  5. 5 DropDownList1.Items.Clear();
  6. 6 DropDownList1.DataSource = dt;
  7. 7 DropDownList1.DataTextField = "job_desc";
  8. 8 DropDownList1.DataValueField = "job_id";
  9. 9 DropDownList1.DataBind();
  10. 方法二:
  11. 使用代码:
  12. 1
  13. 2   SqlConnection conn = new SqlConnection("server=.;uid=sa;database=pubs");
  14. 3   SqlDataAdapter dap = new SqlDataAdapter("select * from jobs", conn);
  15. 4   DataTable dt = new DataTable();
  16. 5   dap.Fill(dt);
  17. 6   DropDownList1.Items.Clear();
  18. 7   DropDownList1.DataSource = dt;
  19. 8   DropDownList1.DataTextField = "job_desc";
  20. 9   DropDownList1.DataValueField = "job_id";
  21. 10  DropDownList1.DataBind();
  22. 11  DropDownList1.Items.Insert(0, new ListItem("----请选择XXX-------"""));//此举必须放到数据绑定之后
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值