摘要:[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();
範例程式碼
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)