[ADO.NET] 如何使用 OLE DB 讀 / 寫 記事本 Textfile

[ADO.NET] 如何使用 OLE DB 讀 / 寫 記事本 Textfile

1.連線字串定義如下: 

1-1.檔案位置"Data Source=C:\\;" (不要把檔案給加進去,只要檔案的位置)
  1-2.提供者名稱:
"Provider=Microsoft.Jet.OLEDB.4.0;"
  1-3.檔案格式:
"Extended Properties=Text"
  1-4.第一行是否為標題:
"HDR="Yes;"
  1-5.檔案內容分格符號:"FMT=Delimited';";

 

2.分格符號若是用逗點區格用"Delimited",用Tab區格用”TabDelimited”。

3.Extended Properties參數若有多項時,記得必須用單引號括起來阿

4.讀寫記事本跟讀寫Excel差不多,幾乎是一樣的,把握住DataTable的使用大原則即可

5.DataTable可以單獨存在,若DataSet只有一個DataTable,就應該盡量用DataTable來取代DataSet,如此可以節省資源。

  

6.以下提供了幾組讀取的方式

6-1.利用利用 OleDbCommandExecuteReader 方法讀取到 OleDbDataReader,再利用 Read 方法列舉資料

if (((Button)(sender)).Text == "法一")
{
//利用OleDbCommand的ExecuteReader方法讀取
dr = cmd.ExecuteReader();

while (dr.Read())
{
listBox1.Items.Add(dr[0].ToString() + "\t" + dr[1].ToString());
}
}
else if (((Button)(sender)).Text == "法二")
{
//載入DataSet
DataSet ds = new DataSet();
da.Fill(ds, "Table");
foreach (DataRow data in ds.Tables[0].Rows)
{
listBox1.Items.Add(data[0].ToString() + "\t" + data[1].ToString());
Console.WriteLine(data[1].ToString());
}
}

6-3.同樣是用 OleDbDataAdapter Fill 方法讀取資料到 DataSet再利用巢狀迴圈讀取資料

else if (((Button)(sender)).Text == "法三")
{
//載入DataSet
DataSet ds = new DataSet();
da.Fill(ds, "Table");
//取得Columns數量
int Col = ds.Tables[0].Columns.Count;
//取得Rows數量
int Row = ds.Tables[0].Rows.Count;
for (int i = 0; i < Row - 1; i++)
{
for (int j = 0; j < Col; j++)
{
listBox1.Items.Add(ds.Tables[0].Rows[i][j].ToString());
}
}
}
else if (((Button)(sender)).Text == "法四")
{
Thread.Sleep(100);
//載入DataTable
dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
//列舉資料
foreach (DataRow data in dt.Rows)
{
listBox1.Items.Add(data[0].ToString() + "\t" + data[1].ToString());
}
}

 

 

7.範例下載

CS_OLEDB_TXT.rar

VB_OLEDB_TXT.rar

 

 

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo