我确定答案就在我的脸上,但我似乎无法找到一个好办法来做到这一点。拆分并将字符串插入数据库
我有一个字符串包含很多的值全部由,
分隔。我从来不知道(在运行之前)该字符串中会有多少个值。我想将它们插入到数据库中(在本例中为SQL Server 2008),但字符串对于NVARCHAR(MAX)
可能太大,所以我创建了临时表并希望在其中插入值。
我可以很容易地做这样的事情(我会做出一个小的例子):
VB
myString = "101,102,103,104,105,106,107,108,109"
For Each value As String in myString.Split(",")
myCommand.CommandText = "INSERT INTO tempTable VALUES @value"
myCommand.Parameters.AddWithValue("@value", value)
Next
C#
myString = "101,102,103,104,105,106,107,108,109";
foreach (string value in myString.Split(','))
{
myCommand.CommandText = "INSERT INTO tempTable VALUES @value";
myCommand.Parameters.AddWithValue("@value", value);
}
但是让我们面对它,这是不是这样做的方式。如果我有8000条记录,会导致8000个不同的插入,我甚至可能会因为考虑这样做而被解雇。
有人能指出我在正确的方向吗?
TL;博士
字符串值这个样子“001,002,003,004,005 ...... 8000”我怎么可以插入每个由,
分隔值未做8000个INSERT
语句。
您是否考虑过将数字写入文本文件,然后使用bcp.exe或'BULK INSERT'导入该文件?或者直接使用SqlBulkCopy API。 – Pondlife 2013-05-03 13:25:52
但是,您究竟希望**将它们存储在数据库中? – 2013-05-03 13:26:02
@Pondlife我必须承认我对任何一种解决方案都不熟悉。我会看看BULK Insert谢谢! – phadaphunk 2013-05-03 13:27:21