2011-12-23 52 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。

相关问题