asp.net

Màu nền
Font chữ
Font size
Chiều cao dòng

II. Các đối tượng trong ADO.Net

1. Đối tượng Connection 

Vai  trò  của  Connection  trong  ADO.net  là  tạo  kết  nối  giữa  ứng  dụng  với  nguồn  dữ 

liệu(CSDL) 

Data Provider  :

o System.Data.Oledb  : Sử dụng với Access 

o System.Data.SqlClient : Sử dụng với SQLServer

Ứng với mỗi tên miến ta có một connection tương ứng:

o System.Data.Oledb.OledbConnection 

o System.Data.SqlClient.SqlConnection

Ngòai ra Ado.net còn hỗ trợ các Data Provider khác như

o System.data.OcracleClient : Dành cho Ocracle

o MicroSoft.data.Odbc  : Dành cho  dạng kết nối thong qua Odbc Connectionủa Hệ 

điều hành

o Microsoft.Data.Sqlxml: Dành cho XML trên Sqlserver

Connection String

Trước khi thực hiện kết nối Connectionần khai báo các thong tin cho Connection 

thông  qua  thuộc  tính  Connection  String. Cách  khai báo  thay  đổi  tùy  thuộc  vào  Data 

Provider. Gồm có các thành phần sau:

o Nếu kết nối với CSDL Access

Provider: Khai báo Data Provider Connectionủa Hệ QT CSDL Access

Data Source: Nguồn dữ liệu (Tên CSDL.mdb) 

User ID: Tên người dùng

Password : Mật khẩu

Ví dụ: Tạo kết nối với CSDL Access

using System;

using System.Data;

using System.Data.OleDb;

public partial class VD2 : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

         String    StrCnn="Provider=Microsoft.Jet.OLEDB.4.0; 

Data~/App_Data/QLBansach.mdb");

        OleDbConnection  cnn = new OleDbConnection (StrCnn);

        //Mở kết nối

        cnn.Open();

        //Command điều khiển truy vấn sql  

        OleDbCommand  cmd = cnn.CreateCommand();

        cmd.CommandText = "select HotenKH from Khachhang where MaKH=2";

        //lấy về chuỗi giá trị trong cơ sở dữ liệu 

        string result = (string)cmd.ExecuteScalar();

        //đóng kết nối 

        cnn.Close();

        //in giá trị ra màn hình 

        Response.Write(result);

    }

}

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 97

o Nếu kết nối với CSDL SQLServer

Provider: Khai báo Data Provider Connectionủa Hệ QT CSDL SQLServer

Data Source:Tên máy cài đặt SQLServer

Initial Catalog: Tên CSDL

User ID: Tên người dùng

Password : Mật khẩu

Các thuộc tính Của Connection

o DataBase: : Tương ứng với Initial Catalog(SQL) hay tên  CSDL  muốn làm  việc 

(Access)

o DataSource: Tương ứng với DataSource Tên máy SQL hay tên CSDL

o Provider: Tương ứng với Provider

o State: Tình trạng kết nối Connectionủa Connection với các giá trị

 Broken: Kết nối đã bị ngắt chỉ xảy ra sau khi đã kết nối

 Closed: Kết nối đã đóng

 Connecting: Đang kết nối

 Executing: Kết nối đang thực hiện một lệnh

 Fetching: Kết nối đang truy xuất dữ liệu

 Open: Kết nối đang mở

Các phương thức 

Change Databse: Thay đổi DataBase làm việc

Close : Đóng kết nối sử dụng đóng Connection đang mở

Dispose: Xóa tòan bộ tài nguyên liên quan đấn Connection trên vùng nhớ.

Open:  Thực  hiện  kết  nối  Connectionới  các  thông  tin  đã  khai  báo  trong 

ConnectionString

Ví dụ: Kiểm tra kết nối với CSDL SQLServer

    protected void Button1_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

        SqlConnection cnn = new SqlConnection("Data Source=;Initial Catalog=QLbansach;User ID=sa;Password=");

        //Mở kết nối

        cnn.Open();

        TextBox1.Text = "State = " + cnn.State; ;

        // Thực hiện các câu lệnh SELECT, INSERT, DELETE, UPDATE.

        cnn.Close();

        //Đóng kết nối

    }

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 98

2. Đối tượng Command

Sau khi tạo kết nối với nguồn dữ liệu, mọi thao tác với nguồn dữ liệu đó đều được thực 

hiện thông qua Command. Tùy theo loại Connection đối tượng Command thuộc tên miền như 

sau:

System.Data.OleDb.OleDbCommand

System.Data.SqlClient.SqlCommand

Tạo Command 

Chúng ta có thể tạo Command thông qua đối tượng Connection bàng cách:

<Loai command>  <Biến Command> As New <Loai command>;

<Biến command>.Connection=<Biến Connection>;

<Biến Command>.CommandText=<Lệnh SQL>;

       Hoặc

<Loai Command>  <Biến Command> As New <Loại >Command(<Lệnh SQL>);

<Biến Command>.Connection=<Biến Connection>;

Các thuộc tính

CommandText : Lệnh SQL hay tên Stored Procedure muốn thực hiện trên nguồn dữ liệu

CommandType: Giá trị cho biết nội dugn Commandtext là gì:

Text: (Mặc định) là câu lệnh SQL

StoredProcedure: Tên thủ tục

TableDirect: Tên Connectionủa table

VD:

SqlCommand cmd As SqlCommand = New SqlCommand();

cmd.Connection = cnn;

cmd.CommandType = CommandType.Text;

cmd.CommandText = "Select* From Khachhang Where MaKH=2";

Parameters

Lệnh SQL trong commandText có thể sử dụng dấu ? thay cho trị chưa xác định và khi 

thực hiện sẽ dùng đối tượng Parameters để truyền gái trị vào  dấu ? . Tùy  theo  Command 

Parameter sẽ khai báo từ lớp OledbParameter hay SqlParameter. Cú pháp khai báo sau:

OleDbParameter | SqlParameter <tên Parameter> As 

New OleDbParameter | SqlParameter();

OleDbParameter | SqlParameter <Ten Parameter> As 

New OleDbparameter | SqlParameter(<Tên>);

OleDbParameter | SqlParameter <Tên parameter> As 

New OleDbParameter | SqlParamter(<tên>,<giá>);

Các thuộc tính cần chú ý:

Direction : Giá trị cho biết lọai tham số

Input: (mặc định) Loại tham số đầu vào

InputOutput: Loại tham số đầu vào và ra 

Output: Loại tham số đầu  ra

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 99

ReturnValue: Loại tham số nhận giá trị trả về Connectionủa một thủ tục

OleDbType / SqlDbType: Kiểu dữ liệu OleDb hay SQLDb  Connectionủa tham số.

ParameterName: Tên tham số

Value: Giá trị tham số

Dùng phương thức CreateParameter và Add Command của tập hợp Parameters.

VD: Khi sử dụng OleDbCommand

cmd.CommandText=”Select * From Khachhang Where MaKH=?”;

OleDbParameter Par As OleDbParameter= cmd.CreateParameter();

Par.Value=”KH01”;;

cmd.Parameters.Add(Par);

VD: Khi sử dụng SqlDbCommand

cmd.CommandText=”Select * From Khachhang Where MaKH=@MaKH”;

SqlParameter Par As SqlParameter = cmd.CreateParameter();

Par.ParameterName=”@MaKH”;

Par.Value=”KH01”;

cmd.Parameters.Add(Par);

Đưa tham số vào tập hợp Parameters

VD: Khi sử dụng OleDbCommand

cmd.CommandText=”Select * From BangDiem Where Masv=?  And MaMH=?”;

OleDbParameter Par1 As OleDbParameter= 

cmd.CreateParameters.Add(“Sinhvien”,OleDbType.Char,4);

Par1.Value=”SV01”

OleDbParameter Par2 As OleDbParameter= 

cmd.CreateParameters.Add(“Monhoc”,OleDbType.Char,4);

Par2.Value=”MH01”

VD: Khi sử dụng SqlDbCommand

cmd.CommandText=”Select * From BangDiem  Where Masv=@MaSV 

and MaMH = @MaMH ”;

SqlDbParameter Par1 As SqlDbParameter= 

cmd.CreateParameters.Add(“@MaSV”,SqlType.Char,4);

Par1.Value=”SV01”

SqlDbParameter Par2 As SqlDbParameter= 

cmd.CreateParameters.Add(“@MaMH”,SqlType.Char,4);

Par2.Value=”MH01”;

Tạo tham số và đưa vào tập hợp Parameters

VD: Procedure SpKetQuaThi Cần 2 tham số đầu vào: @MaSV , @MaMH và trả 

về Điểm thi của  Môn  học Connectionủa sinh viên đó. Vì  vậy chúng ta Connectionần 

truyền 3 tham số: 1 trả về, 2 đưa vào. Tham số trả về phải được truyền cho Command 

trước tiên

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 100

cmd.CommandText=”spKetQuaThi”;

cmd.CommandType=CommandType.StoredProcedure;

OleDbParameter ts3 As New OleDbParameter();

ts3.Direction=ParameterDirection.ReturnValue;

 ts3.OleDbType=OleDn.OleDbType.Int;

cmd.parameters.Add(ts3);

OleDbParameter ts1 as OleDbParameter=

cmd.Parameters.Add(“@MaSV”,OleDbType.Char,4);

Ts1.Value=”Sv01”;

 OleDbParameter ts2 as OleDbParameter=

cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4);

Ts1.Value=”MH01”;

Thực hiện Command

Phương thức ExecuteReader: Phương thức này trả về một đối tượng  DataReader để 

đọc dữ liệu mỗi lần một dòng  với phương thức Read. DataReader đọc dữ liệu trực tiếp từ 

nguốn dữ liệu nên phải duy trì kết nối đến khi đọc xong cú pháp.

   SqlDataReader  <Tên DataReader> As SqlDataReader;

   <Tên DataReader> = <tên Command>.ExecuteReader;

VD:     SqlDataReader   reader As SqlDataReader;

           reader = cmd.ExecuteReader;

Phương thức  ExcuteNoneQuery: Dùng để thực thi các phát biểu T-Sql như: Insert, 

Update, Delete, Create,… 

Phương thức ExcuteScalar: Trả về từ phát biết SQL dạng Select chỉ có một cột một 

hàng. 

3. Đối tượng Datareader

Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con trỏ phía Server và duy trì kết nối với 

Server  trong  suốt  quá  trình  đọc  dữ  liệu,  DataReader  thuộc  tên  miền 

System.data.OleDbDatReader  hoặc System.Data.SqlDataRaeder

Các thuộc tính

FieldCout: Số Connectionột trên dòng hiện hành của DataReader

IsClosed : Cho biết dataReader đã đóng

Item:Trị của cột truyền vào. Tham số truyền vào là tên cột hoặc số thứ  tự  từ  0.

Các phương thức

Close: Đóng DataReader

GetFieldType: Trả về kiểu dữ liệu của cột truyền vào.

GetName: Trả về tên của cột truyền vào

GetValue: Tar3 về trị của cột truyền vào

Read  :  Di  chuyển đến dòng  kế tiếp và  trả về true nếu còn  dòng  để di chuyển, 

ngược lại trả về False.

Trong khi dataReader đang mở các thao tác dữ liệu trên nguồn dữ liệu đều không 

thể cho đến khi dataRaeder đóng lại bằng lệnh Close.

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 101

4. Đối tượng DataAdapter

Để lầy dữ liệu từ nguồn dữ liệu về cho ứng dụng, chúng ta sử dụng một đối tượng gọi là 

DataAdapter. Đối tượng này cho phép ta lấy cấu trúc và  dữ liệu của các bảng trong nguồn dữ 

liệu.

 DataAdapte là một bộ gồm 4 đối tượng:

- SelectCommand: Cho phép lấy thông tin từ nguồn dữ liệu về.

- InsertCommand cho phép thêm dữ liệu vào bảng trong nguồn dữ liệu.

- UpdateCommand cho phép điều chỉnh dữ liệu của bảng trong nguồn dữ liệu.

- DeleteCommand cho phép xóa dữ liệu của bảng trong nguồn dữ liệu.

a. Tạo DataAdapter

Khai  báo  rõ  DataAdapter  sử  dụng  theo  DataProvider  nào:  sqlDataAdapter  hay 

OledbDataAdapter hai lớp này thuộc tên miền: 

System.Data.OleDb.OleDbDataAdapter

System.Data.SqlClient.SqlDataAdapter

Cú pháp tạo DataAdapter

New <Loai>DataAdapter();

New <Loai>DataAdapter(<Đối tượng SelectCommand>);

<Đối tượng SelectCommand>: Có sẳn với nội dụng lệnh truy xuất.

New  <Loai>DataAdapter(<Lệnh>,<Đối tượng Connection>)

DataAdapter chỉ thao tác với một nguồn dữ liệu qua một đối tượng connection đang kết 

nối, khi Connection chưa mở thì DataAdapter sẽ tự động mở kết nối khi cần và đóng lại.

VD:

OleDbDataAdapter DA As New OleDbDataAdapter();

DA.SelectCommand.CommandText=”Select * From Sinhvien”;

AD.SelectCommand.Connection.ConnectionString=”Provider=MicroSoft.Jet.OleDb.4.0; 

Data Source=c:\QuanLySV.mdb”;

b. Các thuộc tín chính của DataAdapter

DeleteCommand : Đối tượng Command chứa nội dung lệnh hủy các mẫu tin trên nguồn 

dữ liệu. 

InsertCommand : Đối tượng Command chứa nội dung lệnh thêm các mẫu tin trên nguồn 

dữ liệu. 

SelectCommand: Đối tượng Command chứa nội dung lệnh truy xuất các mẫu tin trên 

nguồn dữ liệu. 

UpdateCommand :  Đối  tượng  Command  chứa  nội  dung  lệnh  sửa    các  mẫu  tin  trên 

nguồn dữ liệu. 

c. Các chức năng của DataAdapter

- Lấy dữ liệu từ nguồn: Sử dụng DataAdapter để lấy dữ liệu về cho các đối tượng

o DataTable: Fill(<DataTable>)

o DataSet: Fill(<DataSet>)          Dữ  liệu  lấy  về  DataSet  dưới  dạng  các 

dataTable với tên mặc định là: Table,Table1, Table2. . .:

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 102

o Đổ dữ liệu vào Datset cho bảng DataTable nếu chưa có sẽ tạo mới: 

Fill(<DataSet>,<Tên dataTable>)

- Phương thức trả về mẫu tin lấy về được

Dim DS as New Dataset()

Dim so As Integer

so= DA.Fill(DS,”Sinhvien”) 

- Để cập nhật dữ liệu về nguồn

Update(<mảng dòng>): Cập nhật các dòng (Các đối tượng DataRow) vào nguồn dữ liệu.

Update(<Dataset>): Cập nhật các thay đổi trên tất cả các bảng của Dataset vào nguồn 

dữ liệu.

Update(<DataTable>): Cập nhật tất cả các thay đổi trên DataTable vào nguồn dữ liệu.

Update(<Dataset>,<Tên  bảng>)  Cập  nhật  các  they  đổi  trên  bảng  trong  Dataset  vào 

nguồn dữ liệu..

5. Đối tượng DataSet

Dataset là một mô hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu của ứng dụng.

Dataset    chứa  các  bảng  (DataTable)  các  quanhệ  (DataRelation)  và  các  ràng  buộc 

(constraint) Dataset thuộc tên miền: System.Data.Dataset.

a. Khai báo

New System.Data.Dataset()

Hoặc

New System.Data.Dataset(<tên Dataset>)

b. Các phương thức

- Thêm một bảng vào Dataset

Tables.Add()

Một bảng mới tự động được tạo ra với tên mặc định Table1, Table2 . . .

Tables.Addd(<Tên bảng>) 

Một bảng mới tạo ra theo đúng <tên bảng>

Ghi chú: Tên bảng có phân biệt chữ in, thường

- Xóa bảng ra khỏi Dataset

Tables.Remove(<Tên bảng>) 

Xóa bảng ra khỏi tập hợp Table. 

- Kiểm tra bảng có thuộc về Dataset

Tables.Contains(<Tên bảng>)

- Lấy  chỉ số của bảng

Tables.IndexOf(<tên bảng>)

- Lấy số bảng trong Dataset

Tables.Count

- Lấy ra một bảng trong Dataset

Tables(<Chỉ số>)

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 103

- Để cập nhật các thay đổi trên Dataset

AcceptChanges()

- Để hủy các thay đổi trên Dataset

RejectChanges()

- Để xóa bỏ mọi dữ liệu trên dataSet

Clear()

- Để tạo một bản sau của Dataset

Clone()

- Để xóa bỏ Dataset

Gọi phương thức Dispone để giải phóng mọi tài nguyên trên vùng nhớ Dataset đang sử 

dụng.

- Tạo quan hệ giữa hai bảng trong Dataset.

Relations.Add(<DataColumn trên bảng cha>,<Data Column trên bảng con>)

- Xóa quan hệ giữa hai bảng trong Dataset.

Relations.Remove(<quan hệ>)

6. Đối tượng Datatable

Dữ liệu các bảng trong nguồn dữ liệu được lấy về và đưa vào các DataTable. DataTable 

thuộc tên miền : System.Data.dataTable.

Cú pháp:

New DataTable();

New DataTable(<Tên bảng>);

DataTable được hình thành từ các DataColumn, DataRow.

III. Một số minh họa

1. Kết nối cơ sở dữ liệu

protected void Button1_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

            //Mở kết nối

            cnn.Open();

        // Thực hiện các câu lệnh SELECT, INSERT, DELETE, UPDATE.

        TextBox1.Text = "State = " + cnn.State;

        //Đóng kết nối

        cnn.Close();

    }

2. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh SELECT

protected void Button2_Click(object sender, EventArgs e)

    {

        try

        {

            //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

//Khai báo và khởi tạo biến Command

            SqlCommand cmd = new SqlCommand();

            //Khai báo biến Command sử dụng Connection nào để đến database?

            cmd.Connection = cnn;

            //Biến Commnad thao tác với database bằng 

//(1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?

            cmd.CommandText = "SELECT COUNT(*) FROM Chude";

            //Cho biết CommandText chính là câu lệnh.

            cmd.CommandType = CommandType.Text;

            //Mở kết nối

            cnn.Open();

            // Lấy dữ liệu về bằng phương thức ExecuteScalar.

            int count = (int)cmd.ExecuteScalar();

            //Xuất kết quả ra WebForm

            TextBox2.Text = count.ToString();

            //Đóng kết nối.

            cnn.Close();

        }

        catch (Exception)

        {

            //Xuất kết quả ra WebForm

            TextBox2.Text = "Không thành công!";

        }

    }

3. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh INSERT, 

UPDATE, DELETE

protected void Button3_Click(object sender, EventArgs e)

    {

        try

        {

            //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 105

Initial Catalog=QLbansach;User ID=sa;Password=");

            SqlCommand cmd = new SqlCommand();

            cmd.Connection = cnn;

            //Biến Commnad thao tác với database bằng câu lệnh 

//(INSERT, UPDATE, DELETE)

            cmd.CommandText = "INSERT INTO CHUDE(TenCD) VALUES(N'Văn hóa')";

            cmd.CommandType = CommandType.Text;

            cnn.Open();

            //Thao tác dữ liệu (INSERT, UPDATE, DELETE) 

//bằng phương thức ExecuteNonQuery.

            cmd.ExecuteNonQuery();

            //Xuất kết quả ra WebForm

            TextBox3.Text = "Thành công!";

            cnn.Close();

        }

        catch (Exception)

        {

            //Xuất kết quả ra WebForm

            TextBox3.Text = "Không thành công!";

        }

    }

4. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh INSERT, 

UPDATE, DELETE + Truyền tham số.

protected void Button4_Click(object sender, EventArgs e)

    {

        try

        {

//Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

            SqlCommand cmd = new SqlCommand();

            cmd.Connection = cnn;

            //Khai báo và khởi tạo tham số

            SqlParameter parTenLinhVuc = 

new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50);

           cmd.CommandText = 

"INSERT INTO CHUDE VALUES(@TENCHUDE)";

            cmd.CommandType = CommandType.Text;

            //Thêm biến tham số cho Command

            cmd.Parameters.Add(parTenchude);

            //Gán giá trị cho biến tham số

           parTenLinhVuc.Value = TextBox1.Text;

            cnn.Open();

            cmd.ExecuteNonQuery();

            cnn.Close();

            lbThongbao.Text = "Thành công!";

        }

        catch (Exception)

        {

            lbThongbao.Text = "Không thành công!";

        }

    }

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 106

5. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh INSERT, 

UPDATE, DELETE + Truyền tham số.

protected void Button5_Click(object sender, EventArgs e)

    {

//Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        SqlCommand cmd = new SqlCommand();

        cmd.Connection = cnn;

        cmd.CommandText = "SELECT * FROM Nhaxuatban";

        cmd.CommandType = CommandType.Text;

        cnn.Open();

        //Lấy danh sách nhà xuất bản bỏ vào biến DataReader

        IDataReader dr = cmd.ExecuteReader();

        String list = "";

        //Duyệt qua DataReader

        while (dr.Read())

        {

            list = list + dr["TenNXB"].ToString().Trim() + " ";

        }

        dr.Close();

        TextBox6.Text = list.ToString();

        cnn.Close();

    }

6. Kết nối cơ sở dữ liệu + gọi store để lấy dữ liệu.

CREATE PROCEDURE GetNhaxuatban

AS

BEGIN

SELECT * FROM Nhaxuatban

END

GO

protected void Button6_Click(object sender, EventArgs e)

    {

//Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        SqlCommand cmd = new SqlCommand("Getnhaxuatban", cnn);

        cmd.Connection = cnn;

        cmd.CommandType = CommandType.StoredProcedure;

        cnn.Open();

        IDataReader dr = cmd.ExecuteReader();

        String list = "";

        while (dr.Read())

        {

            list = list + dr["TenNXB"].ToString();

        }

        dr.Close();

        TextBox7.Text = list.ToString();

        cnn.Close();

    }

7. Kết nối cơ sở dữ liệu + gọi store để lấy dữ liệu + truyền tham số.

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 107

CREATE PROCEDURE GetchudeByMachude

@Machude char(15)

AS

BEGIN

SELECT * FROM CHUDE WHERE MaCD=@Machude

END

GO

protected void Button7_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        SqlCommand cmd = new SqlCommand("GetchudeByMachude", cnn);

        cmd.Connection = cnn;

        cmd.CommandType = CommandType.StoredProcedure;

        //Khai báo và khởi tạo biến Command

        SqlParameter parMALINHVUC = 

new SqlParameter("@Machude", SqlDbType.NChar, 10);

        parMAVHUDE.Value = TextBox1.Text;

       cmd.Parameters.Add(parMACHUDE);

        cnn.Open();

        IDataReader dr = cmd.ExecuteReader();

        String list = "";

        while (dr.Read())

        {

            list = list + dr["Tenchude"].ToString();

        }

        dr.Close();

        TextBox2.Text = list.ToString();

        cnn.Close();

    }

8. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + update dữ liệu

protected void Button8_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        SqlDataAdapter da = new SqlDataAdapter("select * from CHUDE", cnn);

        SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da);

        DataSet ds = new DataSet();

        da.Fill(ds);

        foreach (DataRow row in ds.Tables[0].Rows)

            if (row["MaCD"]=="1")

            { 

                row["TENCHUDE"] = "BBB"; 

            }

        TextBox1.Text = ds.Tables[0].Rows[2].ItemArray[1].ToString();

        GridView1.DataSource = ds.Tables[0];

        GridView1.DataBind();

        //Không sử dụng SqlCommandBuilder thì không thể update dữ liệu.

        da.Update(ds);

    }

Bài Giảng Môn Lập Trình Website  ASP.Net

Biên sọan: Dương Thành Phết Trang 108

9. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + gọi store

protected void Button9_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        //Khai báo và khởi tạo SqlDataAdapter

        SqlDataAdapter da = new SqlDataAdapter("GETNHAXUATBAN", cnn);

        //Khai báo và khởi tạo DataSet 

        DataSet ds = new DataSet();

        //Lấy dữ liệu trả về đổ vào dataset ds

        da.Fill(ds);

        TextBox11.Text = ds.Tables[0].Rows[2].ItemArray[1].ToString();

        GridView2.DataSource = ds.Tables[0];

        GridView2.DataBind();

    }

10. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + gọi store + truyền tham số

protected void Button10_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        SqlCommand cmd = new SqlCommand("GetchudeByMachude", cnn);

        cmd.Connection = cnn;

        cmd.CommandType = CommandType.StoredProcedure;

        //Khai báo và khởi tạo tham số

        SqlParameter parMACD =new SqlParameter("@MACD", SqlDbType.NChar, 10);

        parMACD.Value = "1";

        cmd.Parameters.Add(parMACD);

        cnn.Open();

        SqlDataAdapter da = new SqlDataAdapter();

        da.SelectCommand = cmd;

        DataSet ds = new DataSet();

        da.Fill(ds);

        GridView1.DataSource = ds.Tables[0];

        GridView1.DataBind();

        cnn.Close();

    }

11. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + đối số là Command

protected void Button10_Click(object sender, EventArgs e)

    {

        //Khai báo và khởi tạo biến Connection 

            SqlConnection cnn = new SqlConnection("Data Source=(local);

Initial Catalog=QLbansach;User ID=sa;Password=");

        SqlCommand cmd = new SqlCommand("GETNHAXUATBAN ", cnn);

        cmd.Connection = cnn;

        cmd.CommandType = CommandType.StoredProcedure;

        cnn.Open();

        SqlDataAdapter da = new SqlDataAdapter();

        da.SelectCommand = cmd;

        //da.InsertCommand = cmd;

        //da.DeleteCommand = cmd;

        //da.UpdateCommand = cmd;

        DataSet ds = new DataSet();

        da.Fill(ds);

        GridView1.DataSource = ds.Tables[0];

        GridView1.DataBind();

        cnn.Close();

    }

}

Bạn đang đọc truyện trên: Truyen2U.Pro