2011-12-23 33 views
0

我嘗試使用SqlDataAdapter對象在PowerShell ISE中和它的方法像下面我們可以在Windows Powershell ISE中使用SQLTransaction嗎?

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 

,並利用其方法如下圖所示

$SqlAdapter.Fill($DataSet) 

它爲我工作。但是,當我試圖像下面

$trans= New-Object System.Data.SqlClient.SqlTransaction 

,並使用其方法是這樣

$trans = $connection.BeginTransaction("SampleTransaction") 

其中

$connection= New-Object System.Data.SqlClient.SqlConnection 

它給我的錯誤

異常調用 「的BeginTransaction」帶「1」參數:「無效 操作。連接被關閉「在線:1個字符:41 + $反式= $ SqlConnection.BeginTransaction < < < <。( 「SampleTransaction」) + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException

任何人有這個任何想法??

回答

0

看來你還沒有打開連接

你只是丟失:

$connection.Open(); 

這將是我的第一個猜測。

0

我同意Gisli打開連接。你的代碼的其餘部分在哪裏?另一種方法是使用一個命令對象和命令事務屬性分配到命令:

$cmd=new-object system.Data.SqlClient.SqlCommand($sql,$conn) 
$cmd.Transaction = $transaction 

這就是我們的adolib模塊,該模塊的SQL Server Powershell Extensions一部分做。查看Module \ adolib \ adolib.psm1。

相關問題