C# 在.exe运行期间出现NullReferenceException,但在调试期间不会出现
在构建我的Windows登录系统期间,只有在通过.exe运行应用程序时才会引发NullReferenceException 然而,在调试过程中,一切都很好 调用登录系统窗口的代码:C# 在.exe运行期间出现NullReferenceException,但在调试期间不会出现,c#,static,nullreferenceexception,C#,Static,Nullreferenceexception,在构建我的Windows登录系统期间,只有在通过.exe运行应用程序时才会引发NullReferenceException 然而,在调试过程中,一切都很好 调用登录系统窗口的代码: LoginSystem ls = new LoginSystem(); ls.Show(); 我在登录系统类中发现问题的地方: private void Window_Loaded(object sender, RoutedEventArgs e) { Login.con = new SqlConnecti
LoginSystem ls = new LoginSystem();
ls.Show();
我在登录系统类中发现问题的地方:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Login.con = new SqlConnection(ConfigurationManager.ConnectionStrings["thuisDB"].ConnectionString);
...
}
万一你想知道:
public class Login
{
public static SqlConnection con = null;
...
}
指向堆栈跟踪的链接:
PS:这一行(Login.con=newsqlconnection(..)
是第一次调用Login.con
,因为使用该静态变量的唯一代码位于LoginSystem应该创建的类中
编辑:这个问题不是关于我问什么是NullRef或者如何修复它,它只是一个事件,我不知道为什么会抛出它,也不知道如何调试它。连接字符串[“thuisb”]
如果在找不到配置文件的文件夹中运行.exe
,则它将为null
查找类似于
MyProgram.exe.config
的内容,并确保它与可执行文件位于同一文件夹中。添加更多代码,特别是在发生NullPointerException
的地方。这是唯一应该相关的代码,但不要认为我的任何其他代码与此NullReferenceIt相关类似于ConfigurationManager.connectionString
为空,或者从集合中得到的结果。请尝试执行var string=ConfigurationManager.connectionString[“thuidb”]
在访问ConnectionString
之前,查看该值是否为null,我也想到了这一点,但是我不完全确定应该如何测试:|一次只访问一个组件。var conStrings=Configurationmanager.ConnectionString;
然后var result=conStrings[“thuisb”]
然后最后一步是string str=result.ConnectionString;
。在每一步完成后,在继续之前做一个空检查。检查配置是否与exe在同一个文件夹中并不重要,你还必须确保你有权访问它-你不能随意点击%PROGRAMFILES%anymo下的应用程序位置re.@Kazetsukai我明白了,我以为app.config是作为某种资源自动添加到exe中的。