Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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_Sql Server - Fatal编程技术网

C# 如何确保在整个应用程序中只执行一次操作?

C# 如何确保在整个应用程序中只执行一次操作?,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,嗯,我想这个问题本身就说明了问题。下面是一些代码(test.cs)使其更清晰: while (reader.Read()) { string sessieVak = reader["vak"].ToString(); if (variable == "cool") { //This part can only happen once in the entire

嗯,我想这个问题本身就说明了问题。下面是一些代码(test.cs)使其更清晰:

        while (reader.Read())
        {
            string sessieVak = reader["vak"].ToString();
            if (variable == "cool")
            {
                //This part can only happen once in the entire application 
                HttpContext.Current.Session[sessieVak] = true;
            }
            if (HttpContext.Current.Session[sessieVak] != null)
            {
                str.Append("<li><a href = vak.aspx?id=" + reader["kdv_ID"] + " />" + reader["vak"] + "</a></li>");
            }
        }
while(reader.Read())
{
字符串sessionvak=reader[“vak”].ToString();
如果(变量==“冷”)
{
//此部分在整个应用程序中只能发生一次
HttpContext.Current.Session[sessionak]=true;
}
if(HttpContext.Current.Session[sessionak]!=null)
{
str.Append(“
  • ”); } }
    我希望你们能帮助我。
    提前感谢。

    您可以使用
    静态bool
    作为标志:

    static bool done = false;    
    
    if (variable == "cool" && done == false)
    {
        //This part can only happen once in the entire application 
        HttpContext.Current.Session[sessieVak] = true;
        done = true;
    }
    

    执行该行后,将
    变量
    设置为不等于
    cool
    的值。“在整个应用程序中一次”是什么意思?@ShivanRaptor感谢我自己没有看到这一点。根据@ShivanRaptor的建议,如果这就是它的全部用途,我建议您使用bool而不是字符串。您可能会想“发生一次”是一个清晰的描述,但我并不清楚-在特定用户的会话中发生一次?在整个宇宙的历史中发生一次?介于两者之间(每个应用程序域回收一次?)你的评论不一定正确。如果创建了一个新对象(包含此代码),done将被设置为false,因此会话变量将再次被分配“true”值。@DeeMac fair point,不确定是否有理由进行下一票though@Paddyd这个问题是不可能回答的,因为它太不清楚问题是什么;对一个模糊问题的适当回答不是发布一个模糊的答案,而是要求澄清就像这个问题一样,这个答案没有上下文是没有意义的。说“在某个地方设置一个变量,不知道在哪里,这取决于你想做什么,“实际上没有任何值。@HimBromBeere是的,我刚刚将其修改为static;)@AntP OP问他如何使代码的一部分只执行一次。我听上去很直截了当