-2

こんにちは、たとえば次の文字列のように文字列を分割する必要があります。

 str.Append("INSERT INTO enquete_antwoord (enquete_vraag_ID, enquete_antwoord, kdv_ID, semesterstart, semestereind, semester) VALUES ('" + reader2["enquete_vraag_ID"].ToString() + "', '" + antwoord + "', '" + id + "', 2013-12-12, 2014-12-12, 1)").ToString();

分割する必要があるのは最後の )"

しかし、私はそれを分割することはできません:

string[] commands = str.Split(new string[] { ")"" }, StringSplitOptions.None);
4

2 に答える 2

3

私は a を使用することを避けStringBuilder(これはあなたが現在使用していると私が想定しているものです)、代わりに aList<string>を目的のストレージとして使用します。

そうすれば、すべての SQL ステートメントをこのリストに追加してから、サーバーまたはファイルに送信するために 1 つのバッチにまとめる数、または分割する理由を決定できます。

言い換えれば、これが私がすることです:

list.Add("INSERT INTO enquete_antwoord (enquete_vraag_ID, enquete_antwoord, kdv_ID, semesterstart, semestereind, semester) VALUES ('" + reader2["enquete_vraag_ID"].ToString() + "', '" + antwoord + "', '" + id + "', 2013-12-12, 2014-12-12, 1)");
list.Add("INSERT INTO enquete_antwoord (enquete_vraag_ID, enquete_antwoord, kdv_ID, semesterstart, semestereind, semester) VALUES ('" + reader2["enquete_vraag_ID"].ToString() + "', '" + antwoord + "', '" + id + "', 2013-12-12, 2014-12-12, 1)");
list.Add("INSERT INTO enquete_antwoord (enquete_vraag_ID, enquete_antwoord, kdv_ID, semesterstart, semestereind, semester) VALUES ('" + reader2["enquete_vraag_ID"].ToString() + "', '" + antwoord + "', '" + id + "', 2013-12-12, 2014-12-12, 1)");
...

string first100 = string.Join(Environment.NewLine, list.Take(100));
string next100 = string.Join(Environment.NewLine, list.Skip(100).Take(100));
.. and so on, (use a loop for this though)

その他の注意事項:

  1. その SQL での日付の書き方が間違っています。正しい形式の文字列として書き出す必要があります。
  2. これにより、SQL ステートメントと値を文字列として連結するときに常に発生する可能性があるため、インジェクション攻撃にさらされていないという必要な保証を追加してください。
于 2013-10-16T11:04:49.130 に答える
1

これは確実に機能します

string[] commands = str.Split(new string[] { @")""" }, StringSplitOptions.None);
于 2013-10-16T11:15:27.980 に答える