【发布时间】:2012-03-01 02:55:00
【问题描述】:
我有一个巨大的表单,其中包含大约 110 个 fields 列(单行),需要保存在数据库中。
使用 ADO.NET 将这么多列插入数据库的最佳方法是什么?
我认为我不应该使用这样的插入语句,因为由于字段的数量,查询会非常大。
conn.Open();
string insertString = @"
insert into Categories (CategoryName, Description)
values ('Miscellaneous', 'Whatever doesn''t fit elsewhere')";
SqlCommand cmd = new SqlCommand(insertString, conn);
cmd.ExecuteNonQuery();
我想将数据转储到临时文件中,然后将它们添加到数据表中,然后使用 SqlBulkCopy 将它们插入到数据库中。
有没有更好的方法?您将如何处理这种情况?
【问题讨论】:
-
如果您的表格也有 ~110 个字段,很抱歉,您做错了。重构/规范化为多个表并执行多个相关的
INSERT语句。 -
一次要添加多少行?它只是单行 110 列,还是我们一次谈论很多行?
-
@Yuck:我情不自禁。我希望我能花时间来做这件事。但不幸的是,目前我无法控制。
-
@MichaelFredrickson:这将是一个用户在大部分字段中填写数据的网页。一旦他们提交数据,它将被放入数据库。粗略估计,三天内大约有 1500 名用户将使用该表单。
-
@MichaelFredrickson:准确回答你,每次提交一行,每行包含110个字段,共有1500个用户将访问该表单。
标签: sql-server ado.net bulkinsert sqlbulkcopy