我正在使用SQL语句从C#中的文本文件中读取。这就是我正在使用的:
var strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + importFolder + ";Extended Properties=\"text;HDR=No;IMEX=1;FMT=Delimited\"";
var conn = new System.Data.OleDb.OleDbConnection(strconn);
var da = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + file + "]", conn);
这样可以正常工作,但它包含文件底部的空白行。是否可以忽略或忽略空行?
谢谢!
更多代码:
var importFolder = Path.GetDirectoryName(savedfile);
var file = Path.GetFileName(savedfile);
var strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + importFolder + ";Extended Properties=\"text;HDR=No;IMEX=1;FMT=Delimited\"";
var conn = new System.Data.OleDb.OleDbConnection(strconn);
var da = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + file + "]", conn);
da.Fill(Exceptions);
答案 0 :(得分:2)
我想我会使用类似的东西从旧文件创建一个新文件(假设文件足够小以适应内存):
var oldLines = File.ReadAllLines(file);
var newLines = oldLines.Where(s => !string.IsNullOrWhitespace(s));
File.WriteAllLines(newFileName, newLines);
编辑:
我总是忘记这种新方法,它绕过了“足够小以适应内存”的要求:
var oldLines = File.ReadLines(file);
var newLines = oldLines.Where(s => !string.IsNullOrWhitespace(s));
File.WriteAllLines(newFileName, newLines);
ReadLines返回IEnumerable<string>
;它不会将整个文件读入内存。
答案 1 :(得分:1)
你可以这样做:
new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + file + "] where SomeImportantColumn is not null and SomeImportantColumn <> ''", conn);
答案 2 :(得分:0)
file.Trim()
// or
file.Trim('\r', '\n')
// or
file.TrimEnd('\r', '\n')
所有这些都将删除最后的空行,但在其他方面表现略有不同。