我正在使用StreamReader读取包含sql查询的长文本文件,然后使用StringBuilder创建一个字符串,该字符串可以针对数据库运行。一旦创建字符串,我检查了值和三个点......出现在字符串中导致查询失败,当我对数据库运行它。这是为什么发生?我能做些什么来阻止它发生?从文本文件读取创建三个点
string script;
if (File.Exists(path))
{
using(StreamReader sr = File.OpenText(path))
{
StringBuilder sb = new StringBuilder();
while(!sr.EndOfStream)
{
sb.Append(sr.ReadLine());
}
script = sb.ToString();
}
}
更新:我想补充一点的三个点出现在每次字符位置16384。不知道这个意义
更新:它看起来字符串在运行时被截断。该文件contiain 48080个字符,但被截断在中间位置16384使字符串变量32768 ..这是一个字符串的最大字符数?
你调试?是否所有其他文本完美无缺地读取?如果是这样,你确定你的文本没有这些点?为什么不从一个文本文件中读取以在sql中传递查询,而只是创建一个存储过程? –
不幸的是,在我的情况下,我没有权利做一个sp(我不开心,因为它会让我的生活变得更简单)。我检查了我的文件,并且三个点不出现在任何地方。此外,甚至更奇怪的是,当我将字符串写入文本时,三个点不出现。他们只存在于字符串变量 – brdahlgren
关于你的第二个问题,是的,其余的文本(之前和之后)似乎被正确读取。我想知道是否有隐藏的角色可能会这样做...我已经在记事本++中进行了检查,但无法找到任何东西 – brdahlgren