C# 读取csv文件的实现方法
用一个System.Web.UI.HtmlControls.HtmlInputFile去handle文件选取。
以下是button click event中的code,用来执行当文件选取了之后读取文件的内容。
<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
void Page_Load(object sender, EventArgs e) {
string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:BANDDatabase; Extended Properties=""text;HDR=YES;"";";
string CommandText = "select * from csv.txt";
OleDbConnection myConnection = new OleDbConnection(ConnectionString);
OleDbCommand myCommand = new OleDbCommand(CommandText, myConnection);
myConnection.Open();
DataGrid1.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
DataGrid1.DataBind();
myConnection.Close();
}
Simple Data Report
其它方法
1 System.Web.HttpPostedFile input = Request.Files[0];
2
3 if (input != null && input.ContentLength != 0)
4 {
5 string path = input.FileName.ToString();
6 System.IO.StreamReader reader = new System.IO.StreamReader(path);
7
8 reader.Peek();
9 while (reader.Peek() > 0)
10 {
11 string str = reader.ReadLine();
12 string[] split = str.Split(',');
13 if (split[0] != "" && split[1] != "")
14 {
15 System.Data.DataSet ds = new DataSet();
16 System.Data.DataRow dr = ds.Tables[0].NewRow();
17 dr[0] = split[0];
18 dr[1] = split[1];
19 ds.Tables[0].Rows.Add(dr);
20 }
21 }
22 }CODE 2:
刚刚做过,直接当表来读
SELECT *
INTO theImportTable
FROM
OPENROWSET('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR=D:;Extensions=CSV;',
'SELECT * FROM CSVFile.csv')CODE 3:
OPENROWSET('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR=D:;Extensions=CSV;',
'SELECT * FROM CSVFile.csv')好复杂哦
文件当作一个数据库教程来操作,使用ole驱动
CODE 4:
1 int intColCount = 0;
2 DataTable mydt = new DataTable("myTableName");
3
4 DataColumn mydc;
5 DataRow mydr;
6
7 string strpath = "";
8 string strline;
9 string[] aryline;
10
11 System.IO.StreamReader mysr = new System.IO.StreamReader(strpath);
12
13 while ((strline = mysr.ReadLine()) != null)
14 {
15 aryline = strline.Split(new char[] { '|' });
16
17 intColCount = aryline.Length;
18 for (int i = 0; i < aryline.Length; i++)
19 {
20 mydc = new DataColumn(aryline[i]);
21 mydt.Columns.Add(mydc);
22 }
23
24 mydr = mydt.NewRow();
25 for (int i = 0; i < intColCount; i++)
26 {
27 mydr[i] = aryline[i];
28 }
29 mydt.Rows.Add(mydr);
30 }