簡體   English   中英

盡管連接已關閉,但仍運行命令 adomd

[英]Running a command although the connection is close adomd

我已經閱讀了 Mirosoft 文檔。當我們打開一個連接然后關閉它時,就可以使用會話了。

我已經編寫了這段代碼來運行命令,但我收到一條錯誤消息,指出沒有連接。 你有任何 Idee 如何關閉連接,但使用會話運行命令:

 try
            {
                using (AdomdConnection adomdConnection = new AdomdConnection("MY Connection String"))
                {
                    adomdConnection.Open();
                    adomdConnection.Close(false);
                    while (true)
                    {
                        String query = @"EVALUATE { BLANK()}";
                        AdomdCommand adomdCommand = new AdomdCommand(query);
                        Console.WriteLine(adomdConnection.SessionID.ToString() + "  " + DateTime.Now.ToString());
                        AdomdDataReader reader = adomdCommand.ExecuteReader();
                        reader.Close();
                        System.Threading.Thread.Sleep(30000);
                    }

                }
            }
            catch(AdomdConnectionException ex)
            {
                Console.WriteLine(ex.Message.ToString());
            }

在您列出的文檔中顯示的示例中,它具有:

/*First, try to connect to the specified data source.  
If the connection string is not valid, or if the specified  
provider does not support sessions, an exception is thrown. */  
objConnection.ConnectionString = connectionString;  
objConnection.Open();  
  
// Now that the connection is open, retrieve the new  
// active session ID.  
strSessionID = objConnection.SessionID;  
// Close the connection, but leave the session open.  
objConnection.Close(false);  
return strSessionID;  

在您的代碼中,您有:

adomdConnection.Open();
adomdConnection.Close(false);
while (true)
{
    String query = @"EVALUATE { BLANK()}";
    AdomdCommand adomdCommand = new AdomdCommand(query);
    Console.WriteLine(adomdConnection.SessionID.ToString() + "  " + 
    DateTime.Now.ToString());
    AdomdDataReader reader = adomdCommand.ExecuteReader();
    reader.Close();
    System.Threading.Thread.Sleep(30000);
}

你不想擁有這個嗎(基於給出的例子)?

adomdConnection.Open();
while (true)
{
    String query = @"EVALUATE { BLANK()}";
    AdomdCommand adomdCommand = new AdomdCommand(query);
    Console.WriteLine(adomdConnection.SessionID.ToString() + "  " + 
    DateTime.Now.ToString());
    AdomdDataReader reader = adomdCommand.ExecuteReader();
    reader.Close();
    System.Threading.Thread.Sleep(30000);
}
adomdConnection.Close(false);

根據您的代碼看起來運行的順序,它似乎在抱怨,因為您甚至在使用它之前就關閉了連接。 嘗試移動adomdConnection.Close(false); 在你的while循環之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM