这种错误很常见,就是空引用的错误,但却不好解决,因为这样的错误通常很隐蔽,我看你的代码只有一处用到了
KJ1
this.KJ1.Controls.Add(Blocks.BlockPic);
你给的
代码应该不全的,这样会给回答者增加难度。我只能给你点建议
你在
this.KJ1.Controls.Add(Blocks.BlockPic);
这句代码上设一个断点,当程序执行到这句话的时候看看
KJ1、KJ1.Controls、Blocks、
Blocks.BlockPic
这4个对象是否有空值存在,然后分析造成空值的原因并解决。
如果不是这句话出的错,那么你只能写个try-catch语句块,捕获一下出异常的代码,然后定位过去,再断点检查空值。
你以调试模式运行一下,看看具体是哪一步出错的,这样找起来容易一点,才能更好更快的解决。初步估计的话,dsAdmins.ReadXml(path + "user.xml"); 这里的路径有问题,应该再加一个'\\',另外 xmlDoc.Load("Debuguser.xml");
,这里的路径好像也有问题,winform的运行时程序的目录是 \bin\Debug 你看看你的那个 XML文件放对了没有。
最可能出错的是以下这句:
root.AppendChild(xe1);//添加到
错误的原因是这个XML中没有叫Debuguser的节点。
建议你使用选择Debug编译而不是Release,这样的花可以显示出错的行号。
c#里面不允许存在没有初始化的变量。所有变量都必须初始化。
比如string a;这样就会有问题。
正确的做法应该是string a="";
既没有取到值,也没有初始化。才会报这个错误