2016-05-29 2 views
0

Das folgende ist Code in Button-Login auf einem Login-Formular in meinem Projekt. Als Teil des Formulars wird eine TXT-Datei erstellt, die Anmeldedaten für die Datenbank enthält. Das Projekt läuft gut, wenn ich nur von Visual Studio aus laufen sollte, aber nachdem ich eine Exe mit VS erstellt habe, bekomme ich den Fehler, dass connection.txt nicht erreichbar ist. Danke.Programm gibt Fehler nach Exe in VS erstellt

private void btnlogin_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     // if the file doesn't exist. 
     string fromConnFile = File.ReadAllText("connection.txt"); 
     NetworkConn ncBefore = JsonConvert.DeserializeObject<NetworkConn>(fromConnFile); 
     String serverName = Base64.base64decode(ncBefore.servername); 
     String userName = Base64.base64decode(ncBefore.username); 
     String passWord = Base64.base64decode(ncBefore.password); 
     String dataBase = Base64.base64decode(ncBefore.database); 
     NetworkConn ncAfter = new NetworkConn() 
     { 
      servername = serverName, 
      username = userName, 
      password = passWord, 
      database = dataBase 
     }; 
     String user = txtusername.Text.TrimStart().TrimEnd(); 
     String pass = txtpassword.Text.TrimStart().TrimEnd(); 
     // object for connecting database. 
     MysqlQuery dataQuery = new MysqlQuery(serverName, userName, passWord, dataBase); 
     DataTable userInfo = new DataTable(); 
     int ifSucceed = dataQuery.Login(user.Replace("'", ""), pass.Replace("'", ""), userInfo); 

     if (ifSucceed == 1) 
     { 
      if (userInfo.Rows.Count == 1) 
      { 
       if (userInfo.Rows[0][0].ToString() == "admin") 
       { 
        this.Hide(); 
        Admin newform = new Admin(dataQuery, userInfo); 
        newform.Closed += (s, args) => this.Close(); 
        newform.Show(); 
       } 
      } 
      else if (userInfo.Rows.Count > 1) 
      { 
       Console.WriteLine("There are more than 1 rows in the table"); 
      } 
      else 
      { 
       Console.WriteLine("Please check"); 
      } 
     } 
    } 
    catch (FileNotFoundException fnfe) 
    { 
     MessageBox.Show("Please set the network"); 
    } 
+0

wo ist connection.txt sein sollte? –

+0

project/bin/Debug/connection.txt – dshock9

+1

Sie versuchen, eine Datei aus dem aktuellen Verzeichnis zu lesen (kein Pfad angegeben). Wenn Ihre Release-Anwendung gestartet wird, sollte sich die erforderliche Datei im selben Verzeichnis wie Ihre finale App befinden. Überprüfen Sie, ob die Datei in dem Ordner vorhanden ist, in dem Sie die App starten – Steve

Antwort

0

Die Anwendung exe und die connection.txt Datei im selben Ordner

+0

Wie stelle ich sicher, dass connection.txt im selben Ordner ist. Während ich das Projekt in VS ausführe, wird die connection.txt im Debug-Ordner des Projekts erstellt. Ist es etwas, was ich tun muss, während ich exe erstelle? Der Fehler, den ich bekomme, ist "Pfad zu c: \ ProgramFiles (x86) \ Projekt \ connection.txt wird verweigert." – dshock9

+0

haben Sie versucht, die Anwendung als Administrator auszuführen? –

Verwandte Themen