[ASP.NET] 使用 ODBC 匯入 CSV 資料

摘要:[ASP.NET] 使用 ODBC 匯入 CSV 資料

前言


  之前有說明了 ASP.NET] 使用 OleDb 匯入 Excel 資料 ,現在接著說明如何使用 ODBC 匯入 CSV 檔案資料,請看範例說明。

 

範例


string serverPath = Server.MapPath("~/FileSystem/");
string fileName = "import.csv";
string connectString = 
       string.Format("Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq={0};Extensions=asc,csv,tab,txt;",
       serverPath);
using (OdbcConnection connection = new OdbcConnection(connectString))
{
    string commText = string.Format("SELECT * FROM [{0}]", fileName);
    OdbcCommand command = new OdbcCommand(commText, connection);
    command.Connection.Open();
    OdbcDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        Response.Write(string.Format("編號:{0},名稱:{1},數量:{2},單價:{3}",
                              reader[0], reader[1], reader[2], reader[3]));
    }
    reader.Close();
}

  要注意的是 ConnectionString 中 Dbq 指的是擋案位於的路徑,如 C:\Doc\ ,而SELECT * FROM 的 [ {0} ] 中則是擋案的名稱,如: [excel.csv] 。

 

  另外如果想將讀出來的資料轉成 DataTable 可以使用以下方法轉置:

                OdbcDataReader reader = command.ExecuteReader();
                // 設定欄位
                for (int i = 0; i < reader.FieldCount; i++)
                    dt.Columns.Add(reader.GetName(i));
                // 設定值
                while (reader.Read())
                {
                    DataRow row = dt.NewRow();
                    for (int i = 0; i < reader.FieldCount; i++)
                        row[reader.GetName(i)] = reader.GetValue(i);
                    dt.Rows.Add(row);
                }
                reader.Close();

 

範例程式碼


TCSVImport.rar

 

 


以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)