1. สร้างขั้นตอนการจัดเก็บ สร้าง
ขั้นตอนการจัดเก็บใหม่สำหรับตารางพนักงานในฐานข้อมูล Northwind ใน MSSQL (ฟังก์ชันเป็นแบบสอบถามแบบคลุมเครือตามนามสกุล):
CREATE PROCEDURE Employess_Sel @lastname nvarchar (20)
เช่น
เลือกนามสกุลจากพนักงานโดยที่นามสกุลเช่น '%' + @lastname + '%'
GO
2. การออกแบบแบบฟอร์ม
1. สร้างเว็บแอปพลิเคชัน ASP.NET ใหม่ ตั้งชื่อเป็น WebSql เลือกเส้นทางการบันทึกแล้วคลิกตกลง
2. เพิ่มป้ายกำกับ กล่องข้อความ และปุ่มปุ่มลงในแบบฟอร์ม จากนั้นเพิ่มตัวควบคุม DataGrid คลิกขวาที่ตัวควบคุม DataGrid และเลือก Property Generator จากนั้นเลือกคอลัมน์ในหน้าต่างที่เปิดขึ้น และลบเครื่องหมายถูกออกก่อนโดยอัตโนมัติ สร้างคอลัมน์ จากนั้นเพิ่มคอลัมน์ที่ถูกผูกไว้กับคอลัมน์ที่เลือก ตั้งค่าส่วนหัวเป็น LastName และตั้งค่าฟิลด์ข้อมูลเป็น LastName คลิกตกลง
3. สร้างชั้นข้อมูลระดับกลาง
คลิกขวาที่โซลูชัน เลือก New-Project-Class Library ตั้งชื่อเป็น ClaSQL เลือกเส้นทางการบันทึก และคลิก ตกลง เพิ่มรหัสต่อไปนี้ลงในไลบรารีคลาสที่เปิด:
นำเข้า System.Data.SqlClient
ชั้นเรียนสาธารณะ ชั้น1
Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")
'สร้างกระบวนการสืบค้น Public Function Emp_Sel (ByVal นามสกุล As String) As DataSet
scon.เปิด()
scon.ปิด()
'กำหนดวัตถุคำสั่งและใช้ขั้นตอนการจัดเก็บ Dimscom As New SqlCommand
scom.CommandType = CommandType.StoredProcedure
scom.CommandText = "พนักงาน_Sel"
scom.Connection = scon
'กำหนดอะแดปเตอร์ข้อมูลและตั้งค่าพารามิเตอร์ Dim sda As New SqlDataAdapter(scom)
sda.SelectCommand.Parameters.Add("@lastname", SqlDbType.NVarChar).Value = นามสกุล
'กำหนดวัตถุชุดข้อมูลและเติมชุดข้อมูล Dim ds As New DataSet
พยายาม
sda.เติม(ds)
จับอดีตเป็นข้อยกเว้น
สิ้นสุดการลอง
กลับds
ฟังก์ชันสิ้นสุด
สิ้นสุดคลาส
4 อ้างอิงชั้นข้อมูลระดับกลาง (ไลบรารีคลาส)
คลิกขวาที่โปรเจ็กต์ ClaSql เลือกสร้าง จากนั้นคลิกขวาที่ "การอ้างอิง" ของโปรเจ็กต์ WebSql เลือกเพิ่มการอ้างอิง จากนั้นเลือกโปรเจ็กต์ที่จะเพิ่ม โครงการ ClaSql ไปยังกล่องส่วนประกอบที่เลือกแล้วคลิกตกลง
5. การออกแบบโค้ดฟอร์ม WebForm1.aspx
เปิดไฟล์ WebForm1.aspx ภายใต้โครงการ WebSql ดับเบิลคลิกปุ่มปุ่มเพื่อเปิดหน้าต่างโค้ดรหัสที่สมบูรณ์จะเป็นดังนี้:
Public Class WebForm1
สืบทอด System.Web.UI.Page
'ละเว้นรหัสฟอร์ม' ปุ่มค้นหา eventPrivate Sub Button1_Click (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ Button1.Click
'กำหนดตัวแปรเพื่อจัดเก็บอินพุตของกล่องข้อความและแปลงเพื่อความปลอดภัย Dim นามสกุล As String = TextBox1.Text
นามสกุล = นามสกุลแทนที่ ("&", "&")
นามสกุล = นามสกุล.แทนที่("<", "")
นามสกุล = นามสกุล.แทนที่(">", "")
นามสกุล = นามสกุลแทนที่ ("'", "'")
นามสกุล = นามสกุล.แทนที่("chr(13)", "<br>")
Lastname = Lastname.Replace("chr(10)", "<br>")
'สร้างคลาสอินสแตนซ์ใหม่และเรียกใช้กระบวนการสืบค้นเพื่อผูกข้อมูล Dim myCla As New ClaSql.Class1
DataGrid1.DataSource = myCla.Emp_Sel(lastname )
DataGrid1.DataBind()
จบหมวดย่อย
คลาสสุดท้าย
ที่หก: หมายเหตุ
: เพื่อเหตุผลด้านความปลอดภัย ควรใช้มาตรการต่อไปนี้เมื่อใช้งานฐานข้อมูล:
1. ใช้ขั้นตอนการจัดเก็บ
2. ห้ามใช้บัญชี SA
3. ใช้รหัสผ่านสำหรับบัญชีที่ซับซ้อน
4. สำหรับการแทรกข้อมูล ให้ลองใช้ที่แตกต่างกัน บัญชีสำหรับการลบและการดำเนินการอื่น ๆ และตั้งค่าเฉพาะการแทรกหรือการลบสิทธิ์สำหรับแต่ละบัญชีที่แตกต่างกัน
5. การดำเนินการฐานข้อมูลควรถูกห่อหุ้มไว้ในเลเยอร์กลาง (ไลบรารีคลาส) ให้มากที่สุดเท่าที่จะเป็นไปได้เพื่อให้โค้ดสามารถนำไปใช้ได้ การนำกลับมาใช้ใหม่ด้วย อำนวยความสะดวกในการปรับเปลี่ยนในอนาคต