我最终要做的是将字典中的值批量插入数据库。
以下是我的词典的设置方式:
public class Record
{
public int ValueNumber;
public string ValueString;
public byte[] ValueBinary;
public DateTime ValueDateTime;
}
public Dictionary<string, Record> Elements = new Dictionary<string, Record>();
我想最终,这样做:
IEnumerable<DataRow> query = Elements.AsEnumerable();
// Create a table from the query.
DataTable dt = query.CopyToDataTable<DataRow>();
// Insert into database
SqlBulkUtilities.BulkInsertDataTable(ConnectionString, "Orders", dt);
这是我的SqlBulkUtilities的样子:
public class SqlBulkUtilities
{
public static void BulkInsertDataTable(string connectionString, string tableName, DataTable table)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlBulkCopy bulkCopy =
new SqlBulkCopy
(
connection,
SqlBulkCopyOptions.TableLock |
SqlBulkCopyOptions.FireTriggers |
SqlBulkCopyOptions.UseInternalTransaction,
null
);
bulkCopy.DestinationTableName = tableName;
connection.Open();
bulkCopy.WriteToServer(table);
connection.Close();
}
}
}
DataTable中的每个DataRow应该是这样的:
key,ValueNumber,ValueString,ValueBinary,ValueDateTime
其中“key”是词典中每个条目的关键。
如果“记录”对象中的“键”是正确的,那么我希望我没有问题。但事实并非如此。
答案 0 :(得分:0)
使用它:
var Result = from e in Elements
select new
{
Key = e.Key,
ValNum = e.Value.ValueNumber...
};