1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập Trình Cơ Sở Dữ Liệu Với CSharp- P8

10 2 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 330,17 KB

Nội dung

Bạn sử dụng phát biểu CASE để so sánh một giá trị với một danh sách những giá trị và thực hiện một hoặc nhiều phát biểu khi một giá trị phù hợp được tìm thấy. Chẳng hạn, phát biểu CASE sau đây trả lại Massachusetts CASE ''MA'' WHEN ''CA'' THEN ''California'' WHEN ''MA'' THEN ''Massachusetts'' WHEN ''NY'' THEN ''New York'' END Ví dụ kế tiếp sử dụng một phát biểu SELECT để truy xuất giá trị Massachusetts được trả lại bởi phát biểu CASE...

PRINT 'The following products have a UnitPrice of less than $5:' SELECT ProductID, ProductName, UnitPrice FROM Products WHERE UnitPrice < END ELSE BEGIN PRINT 'There are no products that have a UnitPrice of less than $5' END Sử dụng phát biểu CASE Bạn sử dụng phát biểu CASE để so sánh giá trị với danh sách giá trị thực nhiều phát biểu giá trị phù hợp tìm thấy Chẳng hạn, phát biểu CASE sau trả lại Massachusetts CASE 'MA' WHEN 'CA' THEN 'California' WHEN 'MA' THEN 'Massachusetts' WHEN 'NY' THEN 'New York' END Ví dụ sử dụng phát biểu SELECT để truy xuất giá trị Massachusetts trả lại phát biểu CASE: DECLARE @State nchar(2) SET @State = 'MA' DECLARE @StateName nvarchar(15) SELECT CASE @State WHEN 'CA' THEN 'California' WHEN 'MA' THEN 'Massachusetts' WHEN 'NY' THEN 'New York' END Bạn cất giữ giá trị truy xuất phát biểu SELECT biến, ví dụ DECLARE @State nchar(2) SET @State = 'MA' DECLARE @StateName nvarchar(15) SELECT @StateName = CASE @State WHEN 'CA' THEN 'California' WHEN 'MA' THEN 'Massachusetts' WHEN 'NY' THEN 'New York' END PRINT @StateName Đầu từ ví dụ sau: Massachusetts Bạn so sánh giá trị cột phát biểu CASE Chẳng hạn: SELECT Price = CASE WHEN UnitPrice IS NULL THEN 'Unknown' WHEN UnitPrice < 10 THEN 'Less than $10' WHEN UnitPrice = 10 THEN '$10' ELSE 'Greater than $10' END FROM Products Bạn ý: từ ví dụ bạn cung cấp điều kiện ELSE catchall phát biểu CASE Sử dụng vòng lặp "WHILE" Bạn sử dụng vòng lặp "WHILE" để chạy nhiều phát biểu nhiều lần Một vòng lặp "WHILE" chạy điều kiện định chuyển giá trị thành false Cú pháp cho vòng lặp WHILE sau: WHILE condition statement Ví dụ sau cho thấy vịng lặp "WHILE" DECLARE @count int SET @count = WHILE (@count > 0) BEGIN PRINT 'count = ' + CONVERT(nvarchar, @count) SET @count = @count -1 END Vòng lặp chạy biến đếm count trở thành 0, đầu từ mã sau: count count count count count = = = = = Hàm CONVERT() (chuyển đổi) dùng để chuyển đổi giá trị từ kiểu sang kiểu khác Chẳng hạn, CONVERT ( nvarchar, @count) chuyển đổi biến đếm count tới kiểu nvarchar, sử dụng với lệnh PRINT (in) Phát biểu CONTINUE (tiếp tục) Bạn sử dụng phát biểu CONTINUE để nhảy tới lần lặp vòng lặp "WHILE" bỏ qua qua mã lại lần lặp thời phát biểu CONTINUE gây thực nhảy trở lại điểm khởi đầu lần lặp Ví dụ sau cho thấy vòng lặp "WHILE" sử dụng phát biểu CONTINUE để bắt đầu lần lặp vòng lặp biến đếm count 2: DECLARE @count int SET @count = WHILE (@count > 0) BEGIN PRINT 'count = ' + CONVERT(nvarchar, @count) SET @count = @count -1 IF (@count = 2) BEGIN SET @count = @count -1 CONTINUE END END Đầu từ mã sau: count = count = count = count = Bạn ý kết không hiển thị biến đếm count = Đây phát biểu CONTINUE thực thi nhảy qua lần lặp Phát biểu BREAK Bạn sử dụng phát biểu BREAK để kết thúc vòng lặp "WHILE" Phát biểu BREAK gây thực nhảy khỏi vòng lặp tiếp tục thực phát biểu sau vịng lặp Ví dụ sau cho thấy vòng lặp "WHILE" sử dụng phát biểu BREAK để kết thúc vòng lặp biến đếm count DECLARE @count int SET @count = WHILE (@count > 0) BEGIN PRINT 'count = ' + CONVERT(nvarchar, @count) SET @count = @count -1 IF (@count = 2) BEGIN BREAK END END Đầu từ mã sau: count = count = count = Sử dụng nhãn Phát biểu GOTO Bạn sử dụng phát biểu GOTO để nhảy tới nhãn định mã bạn; bạn sử dụng nhãn để xác định phát biểu mã bạn Bạn phải định nghĩa nhãn trước phát hành GOTO tới nhãn Trước tơi trình bày chi tiết phát biểu GOTO, bạn cần phải ý thức sử dụng coi thực hành lập trình nghèo nàn, bạn cần phải tránh sử dụng được.Thơng thường ln có cấu trúc mã để bạn không cần sử dụng phát biểu GOTO Như nói, tơi bao gồm chương có tính chất bổ sung Như đề cập, phát biểu GOTO yêu cầu bạn tạo nhãn chương trình bạn Bạn làm điều cách đặt định danh chứa tên nhãn mã bạn, theo sau dấu hai chấm (:) Ví dụ sau tạo nhãn có tên myLabel: myLabel: Rồi bạn sử dụng phát biểu GOTO để nhảy tới nhãn này, chẳng hạn: GOTO myLabel Ví dụ sau cho thấy sử dụng nhãn phát biểu GOTO: DECLARE @count int SET @count = myLabel: PRINT 'count = ' + CONVERT(nvarchar, @count) SET @count = @count -1 IF (@count > 0) BEGIN GOTO myLabel END Đầu từ mã sau: count = count = count = count = count = Sử dụng phát biểu RETURN Bạn sử dụng phát biểu RETURN để thoát khỏi thủ tục lưu trữ hay nhóm phát biểu Bất kỳ phát biểu sau RETURN bạn không thực Bạn trả giá trị sử dụng phát biểu RETURN Cú pháp cho phát biểu RETURN sau: RETURN [int_expression] Với int_expression biểu thức có kết giá trị int Ghi chú: Bạn trả giá trị sử dụng phát biểu RETURN với thủ tục lưu trữ Bạn thấy ví dụ điều sau mục "Giới thiệu thủ tục lưu trữ " Ví dụ sau cho thấy sử dụng phát biểu RETURN: DECLARE @count int SET @count = WHILE (@count > 0) BEGIN PRINT 'count = ' + CONVERT(nvarchar, @count) SET @count = @count -1 IF (@count = 2) BEGIN RETURN END END Đầu từ mã sau: count = count = count = Sử dụng phát biểu WAITFOR Có lần bạn muốn chương trình bạn tạm dừng trước chạy mã để thực tác vụ cụ thể, chạy đợt chương trình vào ban đêm để cập nhật ghi khách hàng Bạn sử dụng phát biểu WAITFOR để rõ khoảng thời gian hay thời gian để đợi tiếp tục thực mã Cú pháp cho phát biểu WAITFOR sau: WAITFOR {DELAY 'time interval' | TIME 'actual time'} Bạn rõ khoảng thời gian đợi sử dụng từ khóa DELAY , hay bạn rõ thời gian thực tế để đợi sử dụng từ khóa TIME Bạn rõ khoảng thời gian hay thời gian thực tế định dạng HH:MM:SS, với HH ( định dạng 24), MM phút, SS giây Đây số ví dụ: ■ WAITFOR DELAY '00: 00: 05' đợi khoảng thời gian giây ■ WAITFOR DELAY '23: 10: 25' đợi khoảng thời gian 23 giờ, 10 phút, 25 giây ■ WAITFOR TIME '20: 15: 10' đợi 10 giây sau 10: 15 PM Những ví dụ sau in thơng báo sau giây trôi qua BEGIN WAITFOR DELAY '00:00:05' PRINT '5 seconds have elapsed' END Sử dụng phát biểu RAISERROR Bạn sử dụng phát biểu RAISERROR để phát sinh thơng báo lỗi Bạn điển hình muốn làm điều lỗi xuất trong số thủ tục lưu trữ bạn, Bạn thấy cách sử dụng sau mục " Tạo thủ tục lưu trữ " Cú pháp đơn giản hóa cho phát biểu RAISERROR sau: RAISERROR ({number | description}{, severity, state}) Với number số đặc trưng cho lỗi, giá trị nằm 50,001 2,147,483,648 description thông báo mà không vượt 400 ký tự severity mức độ lỗi phải nằm khỏang từ đến 18 (18 lỗi nặng nhất) state giá trị nằm 127, mô tả thông tin trạng thái yêu cầu lỗi Những ví dụ sau cho thấy sử dụng phát biểu RAISERROR: RAISERROR (50001, 15, 1) RAISERROR ('No row with that ProductID was found', 10, 1) Sử dụng trỏ Khi bạn thực phát biểu SELECT, tất hàng trả lần truy cập Điều có lẽ khơng ln ln thích hợp Chẳng hạn, bạn muốn sử lý hoạt động dựa vào giá trị cột truy xuất cho hàng cụ thể Để làm điều này, bạn sử dụng trỏ (cursor) để xử lý hàng truy xuất từ sở liệu hàng lần Một trỏ cho phép bạn bước qua hàng trả phát biểu SELECT cụ thể Bạn theo bước sử dụng trỏ: Khai báo biến để cất giữ giá trị cột từ phát biểu SELECT Khai báo trỏ (cursor), rõ phát biểu SELECT bạn Mở trỏ (cursor) bạn Nạp hàng từ trỏ bạn Đóng trỏ bạn Bạn học chi tiết bước mục sau Bước 1: Khai báo biến để lưu trữ giá trị cột từ phát biểu SELECT Những biến phải thích hợp với kiểu cột hàng truy xuất Chẳng hạn, bạn muốn sử dụng biến int để lưu trữ giá trị từ cột int , vân vân Ví dụ sau khai báo ba biến để lưu trữ cột ProductID, ProductName, UnitPrice từ bảng Products: DECLARE @MyProductID int DECLARE @MyProductName nvarchar(40) DECLARE @MyUnitPrice money Bước 2: Khai báo Con trỏ (Cursor) Một khai báo trỏ gồm có tên mà bạn gán tới trỏ phát biểu SELECT mà bạn muốn thực Phát biểu SELECT không thật chạy bạn mở trỏ (cursor) Bạn khai báo trỏ bạn sử dụng phát biểu DECLARE Ví dụ sau khai báo trỏ có tên ProductCursor với phát biểu SELECT mà truy xuất cột ProductID, ProductName, UnitPrice cho 10 sản phẩm từ bảng Products: DECLARE ProductCursor CURSOR FOR SELECT ProductID, ProductName, UnitPrice FROM Products WHERE ProductID

Ngày đăng: 08/05/2021, 18:13