这段代码是为了
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;
}
}
}