使用SqlDataAdapter和DataTable通过PowerShell在SQL Server上获取和更新

IMTheNachoMan

我正在尝试使用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()
雷扎·阿盖伊(Reza Aghaei)

您不应该AcceptChange在该行上调用,而需要调用EndEdit

当call时AcceptChanges,它将结束编辑,但将行标记为Unchanged,因此,DataAdapter由于标记为未更改,因此不会被处理

调用时AcceptChanges,将EndEdit隐式调用方法以结束所有编辑。如果该RowState行的AddedModified,则RowState变为Unchanged如果RowStatewas是Deleted,则删除该行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SqlDataAdapter.FillSchema无法在SQL 2017上获取DataTable

使用合并语句获取插入和更新的单个计数 - C# 和 SQL Server

Axios上的setInterval获取和更新输出而无需重复

使用SqlDataAdapter更新SQL Server数据库

使用可在 MySQL 和 SQL Server 上运行的连接进行更新

如何使用SQL Server和Cognos上的交易日期获取最旧的交易金额

如何使用powershell从html获取通过和失败计数

通过WebApi和AngularJS获取状态更新?

如何比较上一行的日期和更新SQL Server中的条目

如何使用Powershell和Outlook从Exchange Server中获取项目?

审核 SSRS 报告以获取 SQL Server 上的最后运行时间和状态

SQL获取,编辑和更新数据

GORM 批量获取和更新

MongoDB 更新记录和获取

AsyncTask和获取/更新数据

SQL Server-如何在仅更新(不删除)上获取假的多个级联路径?

SQL Server参考/查找表和更新

SQL Server:使用别名和嵌套选择无法进行更新

使用SQL和PHP获取MySQL上的行数

使用 Powershell 和 Azure AD MFA 连接到 SQL Server

SQL Server:获取年份和月份

在SQL Server中获取毫秒和NanoSeconds

使用 OPENXML 在 SQL Server 中获取标记和属性的名称

触发器中的SQL Server错误锁定了表,并因SqlDataAdapter和环境事务而丢失

在Windows Server 2012上安装和运行Redis的最可靠方法是什么?(于2018年更新)

在SQL Server中使用DataTable插入或更新

SQL Server并使用日期,年份和上一年

我在vb和SQL Server上出错

使用Powershell和Regex生成SQL