2012-01-01 172 views
3

某人或許可以幫我解決一些我在數據庫應用程序中遇到的問題。C中的全局變量#

當用戶使用用戶名和密碼登錄到我的數據庫時,我希望用戶名作爲一個整體(所有表單等)被存儲和訪問,以便所採取的每個操作都將用戶簽名作爲它是。

我想的代碼可能類似如下:

namespace YourNamespaceName 
{ 
    class Variables 
    { 
     public static string strUser = "user name"; 
    } 
} 

,我可以用Variables.strUser

再回想

但是我不想硬編碼的用戶價值名稱到我的應用程序。相反,我需要在運行時根據初始登錄過程對它進行評估,並在運行應用程序期間保留用戶名以供參考。

感謝你所有在你援助的預期。

+4

這是一個變量 - 只是指定適合它的任何東西。 – Lucero 2012-01-01 21:45:38

+0

像這樣:YourNamespaceName.Variables.strUser =「Jimmy」; – 2012-01-01 21:48:12

回答

4
namespace YourNamespaceName 
{ 
    public static class Variables 
    { 
     private static string strUser; 


     public static string User { 
      get { return strUser; } 
      set { strUser = value; } 
     } 
    } 
} 

您沒有指定框架版本,但此代碼與.NET 2.0一起使用。使用方法:

Variables.User = "User name"; 
0

如果您的應用程序維護會話狀態,那麼你最好的解決辦法是讓變量住在會話和會話訪問它,範圍變量

+0

我不認爲它是asp.net,它是贏的形式。 – 2012-01-01 21:48:29

+0

是它的一個雙贏的形式應用程序 - 我不知道你的會話狀態或會話的意思範圍變量:■ – PJW 2012-01-01 22:14:04

+0

我的壞會話是指交易的期限,所以,如果你保持一個會話狀態(例如,持續時間與您的數據庫的連接可以是您的會話)。您將維護一組僅在該會話期間有效的變量集合,您將在會話失效時清除這些變量。但是這可能超出了你所需要的範圍,所以我會在其他答案中提出其他建議。 – 2012-01-01 22:32:01

0

您可以創建某種「用戶」類的存儲用戶信息,如用戶名,密碼,電子郵件等......

您可以實現這個類作爲一個獨立的,並創建它曾經在首次用戶登錄。

然後,每當你需要,你可以使用「用戶」單例類的用戶信息。

1

你可以有一個用戶類象下面,這樣可以保證只有用戶在應用程序中看到Instance屬性和測試存根使用細節,你可以,如果你想添加更多的屬性添加到類的單個實例。

using System; 
     using System.Collections.Generic; 
     using System.Linq; 
     using System.Text; 

     namespace yournamespace 
     { 
      public class User 
      { 
      private static User u; 
      public string Username 
      { get { return _username; } } 

      private string _username; 
      protected User(){} 

      public void SetUserInformation(string uname) 
      { 

      _username = uname; 

      } 

     public static User Instance 
     { 
      get{ 
      if(u==null) 
      u=new User(); 
      return u; 
      } 
     } 

#if(TEST_USER) 
    public static void Main(string[] args) 
    { 
     User u = User.Instance; 
     u.SetUserInformation("testuser"); 
     User u1 = User.Instance; 
    } 
#endif 
    } 
}