C#菜鸟问题,回答正确加两倍分

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:30:56
private void LogonForm_Load(object sender, EventArgs e) //133
{
string path = Assembly.GetEntryAssembly().GetName().CodeBase;
dsAdmins = new DataSet();

//string path = FileInfo.DirectoryName + @"\" + Name;
//dsAdmins.ReadXml(new FileInfo(path).DirectoryName +@"\\" +"user.xml");
dsAdmins.ReadXml(new FileInfo(path).DirectoryName + @"\" + "user.xml");

dtAdmins = dsAdmins.Tables[0];

DataColumn[] pkey = new DataColumn[1];
pkey[0] = dtAdmins.Columns["username"];
dtAdmins.PrimaryKey = pkey;
}
************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 BookMagement.LogonForm.CheckUser(String username) 位置 I:\BookMagement\BookMagement\LogonForm.cs:行号 26

显然和你给的代码应该是没什么关系。

错误堆栈里就没有 有关 “LogonForm_Load”的提示。

错误发生在一个按钮事件里, 发生在底层回调的时候。

建议你在“CheckUser”函数中,断点单步执行看一下。

断点位置:
在 BookMagement.LogonForm.CheckUser(String username)
文件: I:\BookMagement\BookMagement\LogonForm.cs

//string path = FileInfo.DirectoryName + @"\" + Name;

dsAdmins.ReadXml(new FileInfo(path).DirectoryName + @"\" + "user.xml");

老大.你都把
//string path = FileInfo.DirectoryName + @"\" + Name; 注释了..

下面怎么还能用path??

为什么要这样写些?好晕哦。
Server.Mapth不能读到路经吗?方法很多的。
你写的代码好像有点问题。
dsAdmins.ReadXml(new FileInfo(path).DirectoryName + @"\" + "user.xml");
按正规的写法,你new FileInfo(path).DirectoryName 东西就直接可以写到web.config文件里面。这样你就可以直接读配置文件。

dsAdmins.ReadXml(new FileInfo(path).DirectoryName + @"\" + "user.xml");

改成

dsAdmins.ReadXml(path + @&quo