通常在寫網頁時,都會需要與資料庫連結,並且從中取出資料或查詢比對等,
接下來是說明ASP.NET該如何與資料庫進行連結。
首先,與資料庫連結,就最先想到必須要跟網頁說明與哪個資料庫連結,
並且資料庫使用者的帳號、密碼、位置等資訊必須說明,
通常在設定資料庫連結時大多網站都會介紹如何從xxxxx.aspx.cs的網頁中去連結,
但是由於自己在開發時常常遇到一件事情,就是資料庫的使用者名稱、密碼會更改,
雖然說一般而言不太可能會去更改...但有時網頁並非自己開發時,就會常發生,
而如果是在xxxxx.aspx.cs中建立資料庫連結時,會因為必須連結的頁面很多,
因此常常導致一改就要改很多頁面的窘境,因此我建議在Web.config中建立資料庫連結語法,
這樣的好處是,如果需要修改使用者帳號、密碼,甚至資料庫名稱時只需要修改一次,
另外當有開發到較大的網站時,通常使用者權限會因頁面權限的不同而有所不同,
而此種方法還可以在同一個地方管理所有連結語法。
接下來直接說明語法,而這邊也一併說明當使用的是MySQL與MSSQL時的差別,
首先是Web.config的連結與法設定,
檔案名稱:Web.config
2 | <add name= "MSSQL_DBconnect" connectionString= "Data Source = 127.0.0.1 ;Initial Catalog =DB_Name;User ID =DB_Username;Password = DB_Password" providerName= "System.Data.SqlClient" /> |
3 | <add name= "MySQL_DBconnect" connectionString= "server=127.0.0.1;User Id=DB_Name;password=DB_Password;Persist Security Info=True;database=DB_Name;CHARSET=big5" providerName= "MySql.Data.MySqlClient" /> |
以上的name欄位中分別有MSSQL_DBconnect及MySQL_DBconnect兩個名稱,
分別就是說明MSSQL及MySQL連結的語法,另外使用MySQL時必須自行匯入MySQL的dll檔,
另外,語法中的127.0.0.1請修改為資料庫位置(正常初學者資料庫及開發環境相同),
DB_Username、DB_Password、DB_Name請依照自己的設定做更正。
接下來,就是說明該如何在xxxxx.aspx.cs套用Web.config的連結與法了。
在想要連結資料庫的地方設定增加語法,
2 | using System.Data.SqlClient; |
3 | SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[ "MSSQL_DBconnect" ].ConnectionString); |
5 | using MySql.Data.MySqlClient; |
6 | MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings[ "MySQL_DBconnect" ].ConnectionString); |
其中的MySQL_DBconnect與MSSQL_DBconnect就是對應到Web.config中所新增的名稱了。
這樣就可以將ASP.NET連結至資料庫了。
接下來,以一個簡單的例子來讀取資料庫中的一筆資料,
03 | SqlConnection connStr = new SqlConnection(ConfigurationManager.ConnectionStrings[ "MSSQL_connect" ].ConnectionString); |
04 | String select = "select * from USER where Name = God" ; |
06 | SqlCommand cmd = new SqlCommand(select, connStr); |
07 | reader = cmd.ExecuteReader(); |
11 | String NameStr = (String)reader[ "Name" ]; |
12 | int IDint = ( int )reader[ "ID" ]; |
19 | MySqlDataReader reader; |
20 | MySqlConnection connStr = new MySqlConnection(ConfigurationManager.ConnectionStrings[ "MySQL_connect" ].ConnectionString); |
21 | String select = "select * from USER where Name = God" ; |
23 | MySqlCommand cmd = new MySqlCommand(select, connStr); |
24 | reader = cmd.ExecuteReader(); |
27 | String Name = (String)reader[ "Name" ]; |
28 | int IDint = ( int )reader[ "ID" ]; |
上面例子中我將字串及整數宣告在迴圈內,所以只有迴圈內可使用該字串及整數,
所以有不同需求的請自行更改。
由於例子中SQL語法已針對特定Name篩選,如果有不同的需求,建議可以在迴圈內用if判斷篩選
沒有留言:
張貼留言