-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 语句添加到此列表中,然后决定在一批中集中多少条以发送到服务器或文件,或者您有什么理由拆分它。

换句话说,这就是我要做的:

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 回答