从Stream Reader中删除格式(\ t \ r \ n)

时间:2013-01-15 19:02:07

标签: c# .net sql

我正在使用StreamReader将我使用SQLExplorer创建的.sql文件导入到我的.NET程序中(最终将通过OdbcConnection传递给fyi。)问题是当我使用ReadToEnd()方法时不仅导入SQL本身,而且导入所有格式。因此,字符串中充满了\r\t等。

我一直在寻找使用split或者正则表达式来打破字符串并删除不需要的碎片。但在投入大量精力之前,我想知道在StreamReader类中是否还有一些我缺失的东西?有没有办法告诉它只是忽略格式化字符?

这是我现在的代码:

public static Object SQLQueryFileCall(String SQLQueryFileName){

        string SQLQuery = "";
        string directory = System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location);
        SQLQueryFileName = directory + "\\" + SQLQueryFileName;

        //read in the file and pass to ODBC, return a Object[] of whatever comes back...
        try{
            using (StreamReader myStreamReader = new StreamReader(SQLQueryFileName)) {

                SQLQuery = myStreamReader.ReadToEnd();
                Console.WriteLine(SQLQuery);
            }
        }
        catch (Exception e){
            //Find the error
            Console.WriteLine("File could not be read:");
            string error = e.Message;
            MessageBox.Show(error);
            return null;
        }
}

随意提供您对代码的任何建议,因为我很新。

但是,是的,我只是希望StreamReader类中有一个方法,我只是不理解。我已经去了微软的在线文档,我觉得我已经给了它一个好看的样子,但是再一次,我是新的,也许这个概念跳过了我的头脑?

任何帮助?

注意:有些\t位于某些行的中间,需要将其删除。因此,使用装饰会......至少是棘手的。

2 个答案:

答案 0 :(得分:1)

根据定义,SQL在整个代码中不应该出现像制表符和换行符这样的空格的问题。首先验证您的实际SQL是否正确。

另外,盲目地剥离空白可能会对脚本中包含的文本数据产生影响;如果你有一个包含制表符的字符串文字,会发生什么?

答案 1 :(得分:0)

这是2020年对我的帮助,以防万一有人正在寻找这个东西

a,b,c