【发布时间】:2012-12-01 06:47:57
【问题描述】:
如何将 C# 中的通用列表批量插入 SQL Server,而不是循环遍历列表并一次插入单个项目?
我目前有这个;
private void AddSnapshotData()
{
var password = Cryptography.DecryptString("vhx7Hv7hYD2bF9N4XhN5pkQm8MRfxi+kogALYqwqSuo=");
var figDb = "ZEUS";
var connString =
String.Format(
"Data Source=1xx.x.xx.xxx;Initial Catalog={0};;User ID=appuser;Password={1};MultipleActiveResultSets=True",
figDb, password);
var myConnection = new SqlConnection(connString);
myConnection.Open();
foreach (var holding in _dHoldList)
{
lbStatus.Text = "Adding information to SQL for client: " + holding.ClientNo;
_reports.AddZeusData("tblAllBrooksHoldingsSnapshot", "CliNo, SEDOL, ISIN, QtyHeld, DateOfSnapshot",
"'" + holding.ClientNo + "','" + holding.Sedol + "','" + holding.ISIN + "','" +
holding.QuantityHeld + "','" + DateTime.Today.ToString("yyyyMMdd") + "'", false, myConnection);
}
myConnection.Close();
lbStatus.Visible = false;
}
其中dHoldList 是DHOLDS 的列表;
public class DHOLDS : ExcelReport
{
public String ClientNo { get; set; }
public String Sedol { get; set; }
public Double QuantityHeld { get; set; }
public Double ValueOfStock { get; set; }
public String Depot { get; set; }
public String ValC4 { get; set; }
public String StockR1 { get; set; }
public String StockR2 { get; set; }
public Double BookCost { get; set; }
public String ISIN { get; set; }
}
【问题讨论】:
-
有关您计划如何存储它的更多信息会有所帮助,您可以使用自己的方法吗?还是必须使用“_reports”中的一些现有答案?
-
我可以使用自己的方法,而数据库属于我,所以我可以添加或进行任何我希望的更改。
标签: c# sql-server bulkinsert