Visual Studio 2013 C#' FileNotFoundException'

时间:2015-10-05 01:58:00

标签: c# visual-studio-2013

我目前正在为Visual Studio,C#Windows Form中的一个项目工作。虽然我的命令有一天运行,但另一个没有。现在我完成了我的项目试图测试一些新东西并且它们一起崩溃了。更具体地说,关于app的结构:我创建了一个主窗体,它具有所有其余窗体继承的基本特征(如menu e.t.c)。 start_form仅提供与MySqlDatabase连接的登录和注册。为了向我的应用程序添加授权,我创建了一个名为" authorization.txt"的文件。其中我按下sign_in按钮时存储用户的id。这段代码完美无缺,直到它开始抛出异常并阻止我看到继承表单的设计预览说:

  

未处理的类型' System.IO.FileNotFoundException'   发生在mscorlib.dll

     

其他信息:找不到文件   ' C:\用户\ LEO \桌面\ VirtualMuseum_App \ VirtualMuseum_App \ authorization.txt'

第一种形式(又名登录注册表格)工作正常,但是一旦它试图加载下一个表格(又名主博物馆),它就会崩溃,抛出上层异常。我给你下面主博物馆表格的代码(构造函数):

public Main_Museum()
{
    InitializeComponent();
    StreamReader myReader = new StreamReader("C:\\Users\\leo\\Desktop\\VirtualMuseum_App\\VirtualMuseum_App\\authorization.txt");
    String line = "";
    while (line != null)
    {
        line = myReader.ReadLine();
        if (line != "")
        {
            MessageBox.Show(line);
            //connection to database
            string myConnection = "datasource = 127.0.0.1; port = 3306; username = root; password = ";
            MySqlConnection myConn = new MySqlConnection(myConnection);
            MySqlCommand SelectCommand = new MySqlCommand("select * from virtual_museum.user where id_user = '" + line + "';", myConn);

            MySqlDataReader dr;
            myConn.Open();
            dr = SelectCommand.ExecuteReader();
            try
            {
                while (dr.Read())
                {
                    String firstname = dr.GetString("user_firstname");
                    Profile.Text = "Welcome" + "\n" + firstname;
                    myConn.Close();
                }
            }
            catch (Exception ex){}
        }
     }
    myReader.Close();
}

任何帮助都将深表感谢。我不知道还能做什么。 (注意:在myReader中的整个路径之前,我已经尝试过只放置文件的名称,它也没有工作 - 尽管它过去确实如此。我不知道为什么会造成这样的混乱。 )

谢谢!

1 个答案:

答案 0 :(得分:0)

该异常告诉您无法找到被引用的文件。当A)构造函数运行时,会发生这种情况,B)指定路径上没有文件。

在不知道有关您的申请的更多细节的情况下,我不能说满足哪些条件B)。也就是说,您需要确保该文件存在于指定位置。

您提到切换到设计视图时会出现此错误。这是因为构造函数将在设计视图中加载给定的Form时运行。在应用程序运行时是否确保该文件存在,但在应用程序关闭时该文件不存在?

在开发应用程序时(除了运行它之外)确保文件存在,或者移动代码以从构造函数中加载文件。