1
我有對象($itemObjectArray
)的陣列,每一個具有這些特性和像這樣的一些值:Powershell的插入物到SQL Server數據庫更優雅溶液
ID : 1234
Location : USA
Price : $500
Color : Blue
我有一個SQL Server 2012的表稱爲Items
列名稱與對象屬性名稱匹配,如下所示:
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是用於幫助編程問題(我的代碼錯誤,我不確定如何解決它) – user4317867
我會使用類似[this](https://gallery.technet.microsoft.com/scriptcenter/Import-Large-CSVs -INTO-SQL 216223d9)。 –