从文本文件csv,txt 等文件内读出指定列方法多种现用微软自带的 ODBC桥接方式读取指定列。
public static System.Data.DataSet LoadTxtFile(int numberOfRows)
{
System.Data.DataSet ds = new System.Data.DataSet();
//try
//{
// Creates and opens an ODBC connection
string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=D:\\;Extensions=asc,csv,tab,txt;Persist Security Info=False; HDR = YES;FMT = TabDelimiter";
//string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=D:\\;Extensions=asc,csv,tab,txt;Persist Security Info=False; HDR = NO;FMT = Delimited(|)";
string sql_select;
//string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dataSourcePath + @";Extended Properties=""text;HDR=NO;FMT=TabDelimiter""";
using (System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim()))
{
conn.Open();
sql_select = "select top " + 10 + " * from [A3.txt]";
//Creates the data adapter
System.Data.Odbc.OdbcDataAdapter obj_oledb_da = new System.Data.Odbc.OdbcDataAdapter(sql_select, conn);
//Fills dataset with the records from CSV file
obj_oledb_da.Fill(ds, "TB");
System.Data.DataView view = new System.Data.DataView(ds.Tables[0]);
//closes the connection
System.Data.DataTable dt = view.ToTable(true, "COLUMN9", "COLUMN0", "COLUMN1");
conn.Close();
}
return ds;
}
TabDelimiter 为\t制表符 也可以是其他的 如,|等分隔符 若本机注册表内默认分隔符为 Delimited(|)需要改注册表内指定值
当然也可直接用StreamReader读指定行指定列暂不做补充