我正在尝试使用 Streamreader 和 Streamwriter 将一些数据转换为 sql 语句。
我的问题是,当我分割其中两个分隔符之间什么都没有,甚至没有空格的行时,它们会被忽略,并且出现 IndexOutOfRange 错误
因为我的 temparray 只到 temparray[3] ,但它应该像 temparray[6] ..
如何拆分和使用 Null 值或用简单的字符替换这些 Null 值,以便在创建 sql 语句时不会出现 IndexOutOfRange 错误?
foreach (string a in values)
{
int temp = 1;
String[] temparray = a.Split(';');
streamWriter.WriteLine("Insert into table Firma values({0},'{1}','{2}')", temp, temparray[1], temparray[4]);
temp++;
}
首先,这是自找麻烦(SQL注入 https://en.wikipedia.org/wiki/SQL_injection)。你应该至少转义从字符串中解析的值。
你似乎错了,因为 String.Split 正是你想要的默认情况下: "x;y;;z".Split(';')
返回一个四元素数组{"x", "y", "", "z"}
。您可以通过使用来实现所描述的行为StringSplitOptions.RemoveEmptyEntries
: "x;y;;z".Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
返回一个three-元素数组{"x", "y", "z"}
。正如你所说,这就是你不想要的。
无论哪种方式,"Überarbeitung der SAV Seite;b.i.b.;;;;PB;".Split(';')
在这里为我返回一个七元素数组,因此请检查您的输入和实现......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)