1 、文件流 + 字符串分割(“,”),缺点:数据中如果有“,”,会出现分割错误。
public DataTable readCsvSql(string filepath)
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
//记录每次读取的一行记录
string strLine = null;
//记录每行记录中的各字段内容
string[] arrayLine = null;
//分隔符
string[] separators = { ",","\t"};
//逐行读取CSV文件
while ((strLine = sr.ReadLine()) != null)
{
//去除头尾空格
strLine = strLine.Trim();
//分隔字符串,返回数组
arrayLine = strLine.Split(separators, StringSplitOptions.RemoveEmptyEntries);
// arrayLine 就是需要的数据
}
}
2、 读取数据库表方式
缺点:不同系统上的 Provider 值不一样,没法大面积使用 (Provider=Microsoft.Jet.OLEDB.4.0; 这个在win7上可行,网上说win11有问题)
public DataTable readCsvSql(string filepath)
{
DataTable dt = new DataTable();
try
{

文章讨论了使用FileStream+字符串分割、数据库读取(包括OleDbConnection)和TextFieldParser读取CSV文件的方法,强调了不同方法的优缺点,如字符串分割对/字符的敏感性,以及数据库Provider在不同操作系统上的兼容性问题。

5214

被折叠的 条评论
为什么被折叠?



