2016-08-31 114 views
-1

在我編寫的ac#程序中,我從INI文件中讀取一些值,將它們放入字符串中,在函數UPLOAD中創建數據庫管理器以將這些值連接到D b。現在,我需要從另一個函數中讀取這些字符串,你會在下面看到它。我該怎麼辦 ?從一個函數到另一個函數的C#字符串

 public Upload() 
    { 
     #region INI PROPERTIES and Variables 

     INIFile inif = new INIFile(@".\Settings\AppSettings.ini"); 
     //Values for DatabaseManager dbm 
     //Hosting Server IP 
     string srv_ip = inif.Read("DatabaseSettings", "IP_adress"); 
     //Database Username 
     string srv_uname = inif.Read("DatabaseSettings", "Admin_Username"); 
     //Database Password 
     string srv_pass = inif.Read("DatabaseSettings", "Admin_Password"); 
     //Database Name 
     string srv_dbname = inif.Read("DatabaseSettings", "Database_Name"); 

     //Values for DatabaseManager dbm 

     //Fingerprint of Hosting Server IP 
     string ftp_fingerprint = inif.Read("ProgramSettings", "fingerprint"); 
     //Host 
     string ftp_host = inif.Read("ProgramSettings", "host"); 
     //Username 
     string ftp_username = inif.Read("ProgramSettings", "username"); 
     //Password 
     string ftp_pass = inif.Read("ProgramSettings", "password"); 

     #endregion 
     InitializeComponent(); 
     DatabaseManager dbm = new DatabaseManager(srv_ip, srv_uname, srv_pass, srv_dbname); 
     dbm.Init(); 
    } 

和其他功能。我需要從第一個存儲變量到字符串,你可以在第二個看到。

private void upload_btn_MouseDown(object sender, MouseButtonEventArgs e) 
     { 

      string fingerprint = ftp_fingerprint; 
      string host = ftp_host; 
      string username = ftp_username; 
      string password = ftp_pass; 

      FtpManager ftpm = new FtpManager(host, username, password, fingerprint, ProgressCallback); 

      string remoteFolder = "/var/whatever"; // Name of directory to upload 
      string remoteName; // Name of file to save on server 

    //some more code 
      } 

通過使這些變量字段解決問題。謝謝大家的回答,我感謝你們每一個人的時間。

+0

您可以創建變量類成員。所以你可以從課堂中的每個功能訪問它們。 –

+0

你必須把所有的代碼放在一個函數中。這就是你所能做的。只是一個大功能。這被稱爲單一責任原則。 –

+0

埃德可能是對的 - 你能告訴我們你所有的代碼嗎? – Enigmativity

回答

2

最簡單的方法就是讓它們成爲字段。

private string ftp_fingerprint; 
private string ftp_host; 
private string ftp_username; 
private string ftp_pass; 

public Upload() 
{ 
    #region INI PROPERTIES and Variables 

    INIFile inif = new INIFile(@".\Settings\AppSettings.ini"); 
    //Values for DatabaseManager dbm 
    //Hosting Server IP 
    string srv_ip = inif.Read("DatabaseSettings", "IP_adress"); 
    //Database Username 
    string srv_uname = inif.Read("DatabaseSettings", "Admin_Username"); 
    //Database Password 
    string srv_pass = inif.Read("DatabaseSettings", "Admin_Password"); 
    //Database Name 
    string srv_dbname = inif.Read("DatabaseSettings", "Database_Name"); 

    //Values for DatabaseManager dbm 

    //Fingerprint of Hosting Server IP 
    ftp_fingerprint = inif.Read("ProgramSettings", "fingerprint"); 
    //Host 
    ftp_host = inif.Read("ProgramSettings", "host"); 
    //Username 
    ftp_username = inif.Read("ProgramSettings", "username"); 
    //Password 
    ftp_pass = inif.Read("ProgramSettings", "password"); 

    #endregion 
    InitializeComponent(); 
    DatabaseManager dbm = new DatabaseManager(srv_ip, srv_uname, srv_pass, srv_dbname); 
    dbm.Init(); 
} 

private void upload_btn_MouseDown(object sender, MouseButtonEventArgs e) 
{ 

    string fingerprint = ftp_fingerprint; 
    string host = ftp_host; 
    string username = ftp_username; 
    string password = ftp_pass; 

    FtpManager ftpm = new FtpManager(host, username, password, fingerprint, ProgressCallback); 

    string remoteFolder = "/var/whatever"; // Name of directory to upload 
    string remoteName; // Name of file to save on server 

    //some more code 
} 
+0

是讓他們的字段在幾秒鐘內解決了問題。但這是一種好技術嗎? –

+0

@NeoEssence不一定 – SledgeHammer

+0

@NeoEssence你可能會更好的通過傳遞一個特定的接口類來滿足你所需要的所有屬性,這樣上傳函數可以更有活力,並且不會依賴在一個ini文件 –

相關問題