.:: CODE SNIPPET ::.

"Your time is limited, so don't waste it living someone else's life"

Đọc dữ liệu từ cơ sở dữ liệu dùng StoredProcedure


Để thực hện kết nối theo dạng này, chúng ta sẽ viết sẵn các procedure trong MSSQL server và trong VS, chúng ta chỉ đơn giản là gọi nó chạy thôi.

Để tạo một procedure cho MSSQL chúng ta sẽ tìm đến thư mục StoredProcedure trong MSSQL của chúng ta, như hình sau:

Tương ứng là khi bạn thao tác trong SQL Server ManagementStudio và trong VS

Sử dụng trong SQL Server Management Studio

Sử dụng trong VS

Chúng ta sẽ New một StoredProcedure, và sau đó sẽ viết Procedure cho thao tác của chúng ta:

ALTER PROCEDURE dbo.Insert_A_Room
	(
	@RoomName nchar(4),
	@RoomTypeID int,
	@Direction nvarchar(50),
	@Views nvarchar(250),
	@Status int
	)
AS
	/* SET NOCOUNT ON */
	insert into ROOM(RoomName,RoomTypeID,Direction,Views,Status)
	values (@RoomName,@RoomTypeID,@Direction,@Views,@Status)
	RETURN

Sau đó, để triệu gọi procedure này chạy. chúng ta sẽ tạo kết nối sql, sau đó tạo SqlCommand

public bool _Insert(RoomDTO room)
        {
            SqlCommand cmd = new SqlCommand("Insert_A_Room", connection);
            cmd.CommandType = CommandType.StoredProcedure;//chỉ rằng loại command của chúng ta là storedprocdedure
            try
            {
                //Chúng ta truyền vào cho procedure những biến mà nó cần để sử dụng.
                //.NET hổ trợ chúng ta lớp SqlDbType hỗ trợ các kiểu dữ liệu tương ứng trong SQL
                cmd.Parameters.Add("@RoomName", SqlDbType.NChar).Value = room.RoomName;
                cmd.Parameters.Add("@RoomTypeID", SqlDbType.Int).Value = room.RoomTypeID;
                cmd.Parameters.Add("@Direction", SqlDbType.NVarChar).Value = room.Direction;
                cmd.Parameters.Add("@Status", SqlDbType.Int).Value = room.Status;
                if (connection.State == System.Data.ConnectionState.Closed)
                {
                    if (!Connect())
                    {
                        return false;
                    }
                }
                if (cmd.ExecuteNonQuery()<=0)
                {
                    return false;
                }
            }
            catch (System.Exception e)
            {
                return false;
            }
            return true;
        }
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: