我正在尝试使用PowerShellSystem.Data.DataTable
从SQL Server获取数据,编辑数据并将其更新回SQL Server,但是我无法使其正常工作。以下代码运行/执行,但数据未更改。
$sqlConnection = new-object System.Data.SqlClient.SqlConnection("Server=server,1234; Database=dingo; Trusted_Connection=True;")
$sqlConnection.open()
$sqlCommand = $sqlConnection.CreateCommand()
$sqlCommand.CommandText = "SELECT * FROM dbo.test"
$dt = new-object System.Data.DataTable
$adapter = new-object System.Data.SqlClient.SqlDataAdapter($sqlCommand)
$adapter.Fill($dt)
# edit the rows
$dt.Rows[0].BeginEdit()
$dt.Rows[0]["a"] = "nacho"
$dt.Rows[0].AcceptChanges()
# command builder
$cb = new-object system.data.sqlclient.sqlcommandbuilder($adapter)
$adapter.UpdateCommand = $cb.GetUpdateCommand()
$adapter.Update($dt)
$sqlConnection.Close()
您不应该AcceptChange
在该行上调用,而需要调用EndEdit
。
当call时AcceptChanges
,它将结束编辑,但将行标记为Unchanged
,因此,DataAdapter
由于标记为未更改,因此不会被处理。
调用时
AcceptChanges
,将EndEdit
隐式调用该方法以结束所有编辑。如果该RowState
行的Added
或为或Modified
,则RowState
变为Unchanged
。如果RowState
was是Deleted
,则删除该行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句