Code Bye

关于登录窗体遇到问题,求指点

这段代码是为了
1、显示登录窗体后,从数据库检索用户名并作为cboName控件下拉框内容;
2、从注册表读取键值,如果是同一个用户登录,则从cboName控件直接显示该用户名,无需选择。

出现的问题:
如果登陆时选择的用户不是列表框最后一个,则下次登录就会正常显示上次登录用户名。
但假如选择了列表框最后一个用户,则下次登录时,列表框显示的当前用户名为空(下拉框内容还在),不知何故。

private void BindCbo()
        {
            DBHelper dbhelper = new DBHelper();
            string sql = “SELECT UserName FROM [User]”;
            SqlDataAdapter adapter = new SqlDataAdapter(sql,dbhelper.Connection);
            DataSet ds = new DataSet();
            adapter.Fill(ds,”User”);
            DataView dv1 = new DataView(ds.Tables[“User”]);
            //逐行提取dv1中的用户
            foreach (DataRowView dr in dv1)
            {                
                    this.cboName.Items.Add(dr[0].ToString());              
            }
            //读取注册表指定键值
            object obj = Registry.GetValue(@”HKEY_CURRENT_USER\Software\EMims\登录名”, “User”, null);
            if (obj!=null)  //如果键值不为空,则在cboName控件显示上次登录名
        {
                for (int i = 0; i < this.cboName.Items.Count-1; i++)
                    if (this.cboName.Items[i].ToString() == obj.ToString())
                    {
                         this.cboName.SelectedIndex=i;
                    }
        }            
        }

40分
你把最后一个给漏了,改为:
for (int i = 0; i < this.cboName.Items.Count; i++)
selectedindex不是从0开始的吗?
测试正常了,非常感谢。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于登录窗体遇到问题,求指点