ODBC Vs. OleDB
兩個不同的協定在資料讀取上是有很大的差異處
先秀一下輸出結果的差異處
-------------------- ODBC 開啟 -------------------- 花費總時間:78.1155毫秒 花費總時間:15.6231毫秒 |
String strServer = "127.0.0.1";
String strDBName = "MS";
String strUserID = "sa";
String strPasswd = "1qaz2wsx";
// 設定SQL語法
String strSQL = "SELECT * FROM MSData";
// 碼表計算Load時間
DateTime time_start = DateTime.Now;//計時開始 取得目前時間
// 1.設定連結字串
System.Data.Odbc.OdbcConnection OdbcConn = new System.Data.Odbc.OdbcConnection();
OdbcConn.ConnectionString = "Driver={SQL Server}; Server=" + strServer + ";Database=" + strDBName + ";User ID=" + strUserID + "assword=" + strPasswd;
// 2.設定連接指令
System.Data.Odbc.OdbcCommand OdbcComm = new System.Data.Odbc.OdbcCommand();
// 3.開啟連線
if (OdbcConn.State == ConnectionState.Closed) { OdbcConn.Open(); } else { OdbcConn.Close(); }
// 4.設定DataSet 為 DS變數
System.Data.DataSet OdbDS = new DataSet();
// 5.設定Adapter為 OdbcDA
System.Data.Odbc.OdbcDataAdapter OdbcDA = new System.Data.Odbc.OdbcDataAdapter(strSQL, OdbcConn);
// 將所有所有資料連接設定成OdbDS
OdbcDA.Fill(OdbDS);
// 關閉連線
OdbcConn.Close();
// 6.顯示出資料
Console.WriteLine(" -------------------- ODBC 開啟 -------------------- ");
Console.WriteLine("資料數量:" + OdbDS.Tables[0].Rows.Count);
Console.WriteLine("欄位數量:" + OdbDS.Tables[0].Columns.Count);
Console.WriteLine("");
for (int i = 0; i < OdbDS.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < OdbDS.Tables[0].Columns.Count; j++)
{
//Console.Write(OdbDS.Tables[0].Rows[j].ToString());
//Console.Write(OdbDS.Tables[0].Rows["欄位名稱"].ToString());
//讀取每一筆資料
}
//Console.WriteLine();
}
DateTime time_end = DateTime.Now;//計時結束 取得目前時間
Console.WriteLine("花費總時間:" + ((TimeSpan)(time_end - time_start)).TotalMilliseconds.ToString() + "毫秒");
Console.WriteLine("======================================================");
// ============================== 分隔線 ==============================
// 碼表計算Load時間
time_start = DateTime.Now;//計時開始 取得目前時間
// 1.設定連結字串
System.Data.OleDb.OleDbConnection OleDBConn = new System.Data.OleDb.OleDbConnection();
OleDBConn.ConnectionString = "rovider=sqloledb; Data Source=" + strServer + "; Initial Catalog=" + strDBName + "; User Id=" + strUserID + "; Password=" + strPasswd;
// 2.設定連接指令
System.Data.OleDb.OleDbCommand OleDB = new System.Data.OleDb.OleDbCommand();
// 3.開啟連線
if (OleDBConn.State == ConnectionState.Closed) { OleDBConn.Open(); } else { OleDBConn.Close(); }
// 4.設定DataSet 為 DS變數
System.Data.DataSet OleDBDS = new DataSet();
// 5.設定Adapter為 OleDBDA
System.Data.OleDb.OleDbDataAdapter OleDBDA = new System.Data.OleDb.OleDbDataAdapter(strSQL, OleDBConn);
// 將所有所有資料連接設定成OleDBDS
OleDBDA.Fill(OleDBDS);
// 關閉連線
OleDBConn.Close();
// 6.顯示出資料
Console.WriteLine(" -------------------- ODBC 開啟 -------------------- ");
Console.WriteLine("資料數量:" + OleDBDS.Tables[0].Rows.Count);
Console.WriteLine("欄位數量:" + OleDBDS.Tables[0].Columns.Count);
Console.WriteLine("");
for (int i = 0; i < OleDBDS.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < OleDBDS.Tables[0].Columns.Count; j++)
{
//Console.Write(OleDBDS.Tables[0].Rows[j].ToString());
//Console.Write(OleDBDS.Tables[0].Rows["欄位名稱"].ToString());
//讀取每一筆資料
}
//Console.WriteLine();
}
time_end = DateTime.Now;//計時結束 取得目前時間
Console.WriteLine("花費總時間:" + ((TimeSpan)(time_end - time_start)).TotalMilliseconds.ToString() + "毫秒");
Console.ReadLine();