一、建立預存程序
在MSSQL中的Northwind資料庫中為employess表新建預存程序( 作用按LastName進行模糊查詢):
CREATE PROCEDURE Employess_Sel @lastname nvarchar (20)
AS
select lastname from Employees where lastname like '%' + @lastname + '%'
GO
二、窗體設計
1、新建ASP.NET Web應用程序,命名為WebSql,選擇儲存路徑然後點選確定。
2.在窗體中新增一個Label、一個Textbox和一個Button按鈕,然後再新增一個DataGrid控件,右鍵點選DataGrid控制項選擇屬性產生器,然後在開啟的視窗中選擇列,去掉自動建立列前的對勾,再向選取列中新增一個綁定列將頁首設為LastName,將資料欄位設為LastName。點選確定。
三、建立中間資料層
右鍵解決方案,選擇新建-專案-類別庫,名稱為ClaSQL,選擇儲存路徑然後點選確定。在開啟的類別庫中新增以下程式碼:
Imports System.Data.SqlClient
Public Class Class1
Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")
'建立一個查詢的過程Public Function Emp_Sel(ByVal lastname As String) As DataSet
scon.Open()
scon.Close()
'定義命令對象,並使用儲存程序Dim scom As New SqlCommand
scom.CommandType = CommandType.StoredProcedure
scom.CommandText = "Employess_Sel"
scom.Connection = scon
'定義一個資料適配器,並設定參數Dim sda As New SqlDataAdapter(scom)
sda.SelectCommand.Parameters.Add("@lastname", SqlDbType.NVarChar).Value = lastname
'定義一個資料集對象,並填入資料集Dim ds As New DataSet
Try
sda.Fill(ds)
Catch ex As Exception
End Try
Return ds
End Function
End Class
四、引用中間資料層(類別庫)
在ClaSql項目上右鍵,選擇生成,然後在WebSql項目的「引用」上右鍵,選擇新增引用,再選擇項目,將ClaSql項目加入選定的組件框中,然後點選確定。
五、WebForm1.aspx窗體程式碼設計
開啟WebSql專案下的WebForm1.aspx文件,雙擊Button按鈕開啟程式碼窗口,完整的程式碼如下:
Public Class WebForm1
Inherits System.Web.UI.Page
'窗體代碼略'搜尋按鈕事件Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'定義變數儲存文字方塊的輸入,以安全的目的轉換Dim lastname As String = TextBox1.Text
lastname = lastname.Replace("&", "&")
lastname = lastname.Replace("<", "")
lastname = lastname.Replace(">", "")
lastname = lastname.Replace("'", "'")
lastname = lastname.Replace("chr(13)", "<br>")
lastname = lastname.Replace("chr(10)", "<br>")
'建立一個新的類別實例,並呼叫查詢過程綁定資料Dim myCla As New ClaSql.Class1
DataGrid1.DataSource = myCla.Emp_Sel(lastname )
DataGrid1.DataBind()
End Sub
End Class
六:注意事項
出於安全性等方面考慮,在對資料庫操作中應盡量採取以下措施:
1、使用儲存過程
2、不要使用SA帳戶
3、要使用複雜帳戶的密碼
4、對於資料的插入、刪除等盡量使用不同的帳戶來操作,並對每個不同帳戶只設定相應的插入或刪除等權限
5、對資料庫的操作應該盡量將其封裝到中間層(類別庫)中,這樣即可以實現程式碼的重用,也方便以後的進行修改。