2013年7月16日 星期二

ASP NET 幾種資料庫連結方法 (Access為例)

首先在這裡介紹幾個ASP.NET連結資料庫的幾種方法
因為範例的資料庫是Access,所以就使用Access的方式來連結
(其實也差不了多少)

方法一
完全使用程式碼來操作
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|NorthWind.mdb;Persist Security Info=True"); //連結字串
conn.Open(); // 開啟連結
OleDbCommand cmd = new OleDbCommand(readcmd , conn); //指令 設定住在London的人
OleDbDataReader dr = cmd.ExecuteReader(); // 讀取到DataReader
//while (dr.Read()) // 如果有讀取到 (這裡是直接輸出)
//{
// Response.Write(dr[0].ToString() +" "+dr[1].ToString ()+" "+dr[2].ToString ()+" "+dr[3].ToString ()+" "+dr[4].ToString ()+" "+dr[5].ToString ()+ "
"); //輸出
//}
// 這裡是使用GridView輸出
GridView1.DataSource = dr;
GridView1.DataBind();
conn.Close(); //關閉連結
// 註:readcmd 是連結的指令 例如:Select * From Student...


方法二
使用控制項寫入程式碼(以AccessDataSource為例)
這個感覺就簡單多了
// 連結
AccessDataSource1.DataFile = "~/App_Data/NorthWind.mdb";
// 這是Sql的例子
SqlDataSource1.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

// 指令
AccessDataSource1.SelectCommand = "Select * From Customers Where City='London'"; GridView1.DataSourceID = "AccessDataSource1";

註:在上面的Sql連結例子中,ConnectionString 內的["ConnectionString"]是需要在web.config上設定的,也可以使用精靈設定(較簡單)
<add name connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|NorthWind.mdb;Persist Security Info=True" name="ConnectionString" providername="System.Data.OleDb">
方法三 完全不使用程式碼
就是完全使用精靈製作啦
雖然說是精靈製作,但其實在HTML編碼上面還是能夠改屬性的
<asp:accessdatasource ID="AccessDataSource1" 控制項ID
runat="server" 在伺服器上運作
DataFile="~/App_Data/NorthWind.mdb" 實體資料庫
SelectCommand="Select * From Customers Where City = 'London'"> 指令


參考資料
不支援關鍵字: 'provider'
Can´t bind a OleDbDataReader to a GridView
[教學] 如何在 Blogger 文章裡顯示程式碼?

沒有留言:

張貼留言