Sql server Powershell将对象插入SQL Server数据库更优雅的解决方案
我有一个对象数组(Sql server Powershell将对象插入SQL Server数据库更优雅的解决方案,sql-server,powershell,object,properties,insert,Sql Server,Powershell,Object,Properties,Insert,我有一个对象数组($itemObjectArray),每个对象都有以下属性和一些值: ID : 1234 Location : USA Price : $500 Color : Blue TABLE Items ( ID Location Price Color PRIMARY KEY (ID) ) 我有一个名为Items的SQL Server 2012表,其列名与对象属性名匹配,如下所示: ID
$itemObjectArray
),每个对象都有以下属性和一些值:
ID : 1234
Location : USA
Price : $500
Color : Blue
TABLE Items (
ID
Location
Price
Color
PRIMARY KEY (ID)
)
我有一个名为Items
的SQL Server 2012表,其列名与对象属性名匹配,如下所示:
ID : 1234
Location : USA
Price : $500
Color : Blue
TABLE Items (
ID
Location
Price
Color
PRIMARY KEY (ID)
)
我创建了以下代码来将对象插入SQL Server表。我觉得我的代码有点粗糙。因为列名与对象属性名匹配,有没有更优雅的方法来实现这一点
$itemObjectArray | %{ #step through array
#get property names, which match column names
$names = $_ | Get-Member -membertype properties
Foreach($name in $names.name){ #make SQL string for column names
$cols += $name + ","
}
$cols = $cols.trimend(",") #get rid of last comma
Foreach($name in $names.name){
#step through properties, get values and build values string
$vals += "'" + $_.$($name) + "',"
}
$vals = $vals.trimend(",") #get rid of last comma
$sqlCommand.CommandText = "INSERT INTO Items ($cols) VALUES ($vals)"
$sqlCommand.ExecuteNonQuery() #insert
$cols = $Null #wipe
$vals = $Null
}
你应该使用
这可能会在CodeReview网站上收到更多反馈。StackOverflow用于帮助解决编程问题(我的代码错误,我不确定如何修复它),我会使用类似的方法。