我有一个小型作业,需要一个电子邮件/邮政编码的文本文件并将它们插入到sql server 2005表中。它读取源文件的每一行,检查它是否解析为有效的电子邮件地址/邮政编码,创建sql插入命令,将其添加到字符串构建器并最终执行它。我想做一个单独的执行而不是单个的sql调用,因为可能会有几千个插入。创建批处理的sql语句
这有效,但我想知道这是否是一种坏方法。这里最好的做法是什么?
Dim SqlString As String = "insert into [CollectedEmail] values('{0}','{1}');"
Do Until sourceFile.Peek = -1
line = sourceFile.ReadLine
If line.Length > 0 Then
Dim emailAddress As String = Trim(line.Substring(0, EmailLength))
Dim zipcode As String = Trim(line.Substring(EmailLength + 2, ZipCodeLength))
If CVal.validEmail(emailAddress) AndAlso CVal.validZip(zipcode) Then
SQL.AppendLine(String.Format(SqlString, emailAddress, zipcode))
ElseIf CVal.validEmail(emailAddress) Then
SQL.AppendLine(String.Format(SqlString, emailAddress, ""))
Else
badAddresses.WriteLine(emailAddress)
End If
End If
Loop
InsertToDatabase(SQL.ToString)
谢谢
然后将原始源文件清理成另一个平面文件然后使用SqlBulkCopy类是正确的方法吗? – GernBlandston 2009-07-06 15:00:40