我正在使用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