我尝试在Powershell ISE中使用SQLDataAdapter对象及其方法如下
$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
它给我错误
使用“1”参数调用“BeginTransaction”的异常:“无效 操作。连接已关闭。“在线:1个字符:41 + $ trans = $ SqlConnection.BeginTransaction<<<< ( “SampleTransaction”) + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
有人对此有任何想法吗?
答案 0 :(得分:0)
好像你还没有打开连接。
你是否只是缺席:
$connection.Open();
那是我的第一次猜测。
答案 1 :(得分:0)
我同意Gisli打开连接。你的其余代码在哪里?另一种方法是使用命令对象并将命令事务属性分配给命令:
$cmd=new-object system.Data.SqlClient.SqlCommand($sql,$conn)
$cmd.Transaction = $transaction
这是我们在adolib模块中所做的,它是SQL Server Powershell Extensions的一部分。查看Modules \ adolib \ adolib.psm1。