如何傳遞由參數命名列列名,更新與參數
的榜樣
DataTable dt = new DataTable();
// Here I fill my datatable
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string columnsname = dt.Rows[i][dt.columns[j].toString()].toString();
SqlCommand comando = new SqlCommand();
comando.commandText = "UPDATE Sales.Store SET @columnname = @demographics where id = @id";
comando.Parameters.Add(new SqlParameter("@columnname", columname));
comando.Parameters.Add(new SqlParameter("@dados2", dados2));
comando.ExecuteNonQuery();
comando.Clear();
comando.Dispose()
}
}
這是不行的,但我有88列,我需要更新所有數據在每行的每88列中。
但是,如果我在數據表中有30000行,並且我需要更新每個88列上的每個數據,那麼,如何將整個數據表傳遞給過程? –
@ user965769 - 如果您使用SQL Server 2008及更高版本,則可以使用[Table Valued Parameters](http://msdn.microsoft.com/zh-cn/library/bb675163.aspx)。 – Oded
是的,我有Sql Server 2008 Enterprise。要插入許多數據,我使用SqlBulkCopy類,我的疑問是如何動態更新,就像我上面所說的那樣。我將學習這個表值參數,看看它是否適用於我的項目。非常感謝! –