2012-01-01 96 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 
    } 
}