Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将变量传递到另一个命名空间?_C#_Asp.net_Sql Server - Fatal编程技术网

C# 如何将变量传递到另一个命名空间?

C# 如何将变量传递到另一个命名空间?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我必须在这里将一个计数值传递给另一个名称空间。我有两个类Select.cs和Value.cs选择。cs具有以下代码: public bool Login(string UserName, string Password) { string strinvselect = string.Format("select * from newlog where pass='{0}'", Password);

我必须在这里将一个计数值传递给另一个
名称空间
。我有两个类
Select.cs
Value.cs
<代码>选择。cs具有以下代码:

    public bool Login(string UserName, string Password)
    {
        string strinvselect = string.Format("select * from newlog where
                              pass='{0}'", Password);

        DataTable dtlog = ExecuteStatement(strinvselect);

        if (dtlog.Rows.Count == 1)
        {
            string strvalue = string.Format("Select * FROM login WHERE uid= 
                                           '{0}'", UserName);

            DataTable newlogin = ExecuteStatement(strvalue);

            try
            {
                if (newlogin.Rows.Count == 1)
                {
                    loginStatus = true;
                }
            }
            catch (Exception ex)
            {
                loginStatus = false;
            }

            return loginStatus;
        }
    }
我必须创建一个计数值
如果(newlogin.Rows.count==1)
count=1
,这个值应该在value.cs中可用以检查功能。 在
Value.cs
中调用函数
getdetails()
。我要查一下

        if (count == 1)
        {
            getdetails();
        }
        else
        {
            // call another function
        }        

您可以在登录外部检查count查询(基本上在您需要的任何地方),然后将其作为“用户名+计数”(您需要拆分它)传递到登录第一个参数,因为您可以避免再次检查登录内部的count。

我找到了答案:

名称空间在这里并不真正相关,问题是您需要从不同的类访问变量。您拥有特定于用户的“全局”变量的方式是会话,因此将值存储在会话变量中,并让您的其他类访问会话变量

HttpContext.Current.Session["myData"] = "somevalue";
价值函数

string x;

if (Session["myData"] == null)
{
   // handle the data not being set
}
else
{
   x = (string)HttpContext.Current.Session["myData"].ToString(); ;
}

是否要将count传递给Value.cs?可能在这里发布您的Value.cs代码。首先,上一堂术语课:您不会将任何内容传递给命名空间。名称空间只是类的容器。您可以将内容传递给方法。您可以将内容分配给属性、字段和变量。此外,
Select.cs
Value.cs
是文件名,而不是类。最后呢?即使在调整了术语之后,你也没有什么意义。听起来你好像在试图重新发明ASP.NET的身份验证和配置文件机制?你为什么不直接用盒子里的东西呢?这些比手工编写自己的版本更快更安全,除非你确切知道自己在做什么。问题和答案之间没有关系。你到底在问什么还不清楚。会话变量既不是全局变量,也不是特定于用户的容器,不应该这样使用。会话变量是每个用户会话的变量,这意味着它们是不稳定的,并且会过期。这也意味着它们必须被序列化,它们不能存储大量数据,也不能扩展。