2012-03-16 47 views
5

使用SMO時發生錯誤。這段代碼一直在VB.Net 4中工作,剛剛轉移到C#,現在不能正常工作。開始事務時出現SqlServer.Management.SMO.Server錯誤

Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(
    new Microsoft.SqlServer.Management.Common.ServerConnection(
    new System.Data.SqlClient.SqlConnection(connStr.ToString()))); 

server.ConnectionContext.Connect(); 
server.ConnectionContext.BeginTransaction(); // error here 

錯誤是:

這是在MARS分批啓動的事務仍然是活動的在批處理結束。事務回滾。

除SMO之外,沒有其他數據庫連接。

連接字符串是:

數據源= MYPC \ SqlServer的;初始目錄= mytestdb;集成安全性= TRUE;用戶ID =;密碼=; MultipleActiveResultSets =真

有沒有人在使用SMO時看到這個錯誤並知道是什麼造成了它?

+1

你試過禁用MARS(MultipleActiveResultSets = False)嗎? – RobS 2012-03-17 00:40:47

+0

我想禁用MARS會解決這個問題,但是我不想改變設置,直到代碼開始工作。 – usr 2012-03-17 13:17:16

+0

從連接字符串中刪除MARS修復了問題。 – 2012-03-19 14:27:18

回答

8

從連接字符串中刪除MARS修復了問題。