注册 登录
编程论坛 C# 论坛

用户登陆界面密码文本框不显示值的问题

lanke711 发布于 2017-05-15 15:13, 3534 次点击
请各位前辈不要骂我用的treeview控件,这只是在解决不了问题的时候建了个测试的项目时用的控件。
需要求助的问题:
密码本文框为空,不显示密码!

获取已记住密码的用户:
 
程序代码:
public Form1()
        {
            
            InitializeComponent();
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load("User.xml");                            //打开xml文件
            XmlNode xn = xmldoc.SelectSingleNode("UserLogin");  //检索根节点
            XmlNodeList xn1 = xn.ChildNodes;                    //获取所有子节点
            int i = 0;                                          //计次变量
            DataSet ds = new DataSet();                         //实例化dataset对象
            ds.ReadXml("User.xml");                             //读入数据
            for (int j = 0; j < ds.Tables[0].Rows.Count; j++) //循环
            {
                treeView1.Nodes.Add(ds.Tables[0].Rows[j][0].ToString());//把所有节点添加到treeview集合


            }

        }

获取密码:
//双击节点时发生
      
程序代码:
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {

            textBox2.Text= treeView1.SelectedNode.Text;//treeview的选项在textbox中显示出来
            if (checkBox1.Checked == true)
            {
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load("User.xml");                            //打开xml文件
                XmlNode xn = xmldoc.SelectSingleNode("UserLogin");  //检索根节点
                XmlNodeList xn1 = xn.ChildNodes;                    //获取所有子节点
                int i = 0;                                          //计次变量
                DataSet ds = new DataSet();                         //实例化dataset对象
                ds.ReadXml("User.xml");                             //读入数据
                for (int j = 0; j < ds.Tables[0].Rows.Count; j++) //循环
                {
                  
                    for (int k = 0; k < ds.Tables[0].Rows.Count; k++)
                    {

                        if (treeView1.SelectedNode == ds.Tables[0].Rows[j][0])//判断选择项是否与xml的id匹配
                        {
                            textBox1.Text = ds.Tables[0].Rows[0][k].ToString();//密码textbox控件获得密码
                        }
                    }

                }
            }
            treeView1.Visible = false;//隐藏treeivew
        }



只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

箭头处的textbox为空,不显示任何值!
只有本站会员才能查看附件,请 登录

xml文件是这样的。
2 回复
#2
yhlvht2017-05-15 19:56
这种问题调试一下应该很容易找到的
大致看了下代码,密码框为空表示
textBox1.Text = ds.Tables[0].Rows[0][k].ToString();//密码textbox控件获得密码
这句应该没有执行,或是datatable该单元格没有值。另外这句Rows[0][k]是有问题的,可能是Rows[j][k]才对
如果是没有执行,那就是
if (treeView1.SelectedNode == ds.Tables[0].Rows[j][0])//判断选择项是否与xml的id匹配
这句判断没有为真,可能是两边值不等,或是两边类型不一致
还有
for (int j = 0; j < ds.Tables[0].Rows.Count; j++) //循环
for (int k = 0; k < ds.Tables[0].Rows.Count; k++)
这两句for除了变量不一样,别的都一样,第二个for应该是循环列,而不是行
还有
xmldoc.Load("User.xml");                            //打开xml文件
XmlNode xn = xmldoc.SelectSingleNode("UserLogin");  //检索根节点
XmlNodeList xn1 = xn.ChildNodes;                    //获取所有子节点
int i = 0;                                          //计次变量
这4句,因为都是局部变量,然而在事件里面并没有使用到,可能没有什么作用
最后应该检查一下xml数据是否读入到dataset里面去了
#3
leisiege2017-06-30 22:07
调试下吧。挺乱的。
1