[英]How to Add Data Dynamically to sql server table from dynamically generated fields on Webform?
[英]Write data to columns in SQL Server table dynamically
我有一個約200列的.csv
文件,列的順序一直在變化。 我想從文件中讀取每一行,在數據庫中標識相應的列名,並相應地將數據寫入表中。
為此,我可以使用一個簡單的開關案例來檢查列的名稱。 既然有200列,我想知道是否還有其他方法可以做到。
例:
public void ColName(string str, Type a)
{
SampleTableName obj = new SampleTableName();
obj."str" = a;
connection.AddSampleTableName(obj);
connection.savechanges();
}
/* SampleTableName has columns: [Name, Age] */
ColName("Name","XYZ");
Output:
Name Age
XYZ NULL
有什么想法嗎? 謝謝。
如果列名相同,則可以使用SqlBulkCopy並添加列映射列表。 只要設置了DataTable名稱,順序就沒有關系。
DataTable table = CreateTable(rows);
using (var bulkCopy = new SqlBulkCopy(connectionString))
{
foreach (var col in table.Columns.OfType<DataColumn>())
{
bulkCopy.ColumnMappings.Add(
new SqlBulkCopyColumnMapping(col.ColumnName, col.ColumnName));
}
bulkCopy.BulkCopyTimeout = 600; // in seconds
bulkCopy.DestinationTableName = "<tableName>";
bulkCopy.WriteToServer(table);
}
如果列名不同,則可以使用字典來查找不同的名稱。
為了簡化維護目的,我嘆了口氣 。 但是,我編寫了一個小腳本,將所有這些字段值添加到表對象中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.