Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.exe运行期间出现NullReferenceException,但在调试期间不会出现_C#_Static_Nullreferenceexception - Fatal编程技术网

C# 在.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

在构建我的Windows登录系统期间,只有在通过.exe运行应用程序时才会引发NullReferenceException

然而,在调试过程中,一切都很好

调用登录系统窗口的代码:

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中的。