私は、電子メール/郵便番号のテキストファイルを取り込んでSQL Server 2005テーブルに挿入する小さな仕事をしています。ソースファイルの各行を読み込み、有効な電子メールアドレス/郵便番号を解析し、sqlの挿入コマンドを作成し、文字列ビルダーに追加して最終的に実行します。私は個々のSQL呼び出しの代わりに1回の実行をしたいのですが、おそらく数千の挿入があるでしょう。バッチ処理された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)
以降は、.NET 2.0をチェックアウトし、あなたに一括挿入するため
元のソースファイルを別のフラットファイルにクリーンアップしてから、SqlBulkCopyクラスを使用するのが正しい方法ですか? – GernBlandston