ASP.NET 使用 SQL DataReader、DataAdapter 來做查詢、新增、刪除、修改資料

以 ADO.NET 來做 SQL 的資料存取時,可以使用 DataReaderDataAdapter 的方法來做。

在 <.NET資料存取,ADO.NET+SqlDataSource+LINQ>  一書中有提到關於 DB(資料庫) 連結的四大步驟:

  1. 連結資料庫
  2. 執行SQL指令
  3. 自由發揮(做SQL指令的相關動作)
  4. 釋放資源,關閉資料庫 

下面範例我以 SQL DataReader 的方法來做 有關資料的查詢、新增(修改)、刪除

在前端的頁面(.aspx)我們放一個 GridView 來作為與資料庫連結,呈現資料的畫面,

在後端(.aspx.cs)則撰寫相關的程式碼:

  • 查詢的部分

首先 先做撰寫連結資料庫的動作:

SqlConnection Conn = new SqlConnection
(WebConfigurationManager.ConnectionStrings["資料庫名稱"].ConnectionString);

 SqlDataReader dr = null;

 SqlCommand cmd = new SqlCommand("select 欄位名稱 from 資料表", Conn);

一、連結資料庫:

conn.open();

二、執行 SQL 指令

dr = cmd.ExecuteReader();   //執行SQL指令,取出資料

三、自由發揮(撰寫資料庫指令執行的部分):

 GridView1.DataSource = dr;
 GridView1.DataBind();  
 //資料繫結

四、釋放資源,關閉資料庫的連結:

cmd.Cancel(); //關閉DataReader之前,一定要先「取消」SqlCommand

dr.Close();

Conn.Close();
Conn.Dispose();

  • 新增/刪除的部分

差別在執行SQL指令的部分,在一開始連結資料庫,抓取資料時,會使用

SqlCommand 來下抓取資料的指令,如上方一開始所寫的,若是要做新增(Insert)或是刪除(Delete)

的話,可以將裡面的指令做修改,並將"值"(參數)帶入,達到資料的修改。

(刪除)

SqlCommand cmd = new SqlCommand("delete from test where id =@id", conn);
cmd.Parameters.Add("@id", SqlDbType.Int, 4).Value=123;
dr=cmd.ExecuteNonQuery();

(新增)

SqlCommand cmd = new SqlCommand("Insert Into test(欄位名稱) Values(@對應的參數值)", conn);
cmd.Parameters.Add("@對應的參數值", SqlDbType.DateTime, 10).Value=DateTime.Now.ToShortDateString();
dr=cmd.ExecuteNonQuery();

接著我以 SQL DataAdapter 的方法來做 有關資料的查詢、新增(修改)、刪除

使用 SQL DataAdapter 的法時,會搭配 DataSet()  以及 .Fill() 的方法來做存取

SqlConnection conn = new SqlConnection
(ConfigurationManager.ConnectionStrings["資料庫"].ConnectionString);

DataSet ds = new DataSet();

SqlDataAdapter sdr = new SqlDataAdapter();

sdr.SelectCommand = new SqlCommand("Select * from test", conn); //執行SQ指令
u_Adapter.Fill(ds, "test");   //取出資料,放進 DataSet。

//一個 DataSet 裡面可以有許多的 DataTable

adr.InsertCommand = new SqlCommand("INSERT INTO [資料表](欄位名稱) VALUES (@參數值)", conn);
adr.InsertCommand.Parameters.Add("@參數值", SqlDbType.NVarChar, 50).Value=對應的值;

adr.Fill(ds,"test");  //把 DataSet裡面的新資料,回寫到資料庫!