1. ストアド プロシージャを作成します。
MSSQL で Northwind データベースの従業員テーブル用の新しいストアド プロシージャを作成します (関数は LastName に基づくファジー クエリです):
CREATE PROCEDURE Employess_Sel @lastname nvarchar (20)
として
姓が '%' + @lastname + '%' のような従業員から姓を選択します
GO
2. フォーム設計
1. 新しい ASP.NET Web アプリケーションを作成し、WebSql という名前を付け、保存パスを選択して [OK] をクリックします。
2. ラベル、テキストボックス、およびボタンボタンをフォームに追加してから、DataGrid コントロールを追加します。DataGrid コントロールを右クリックして [プロパティジェネレーター] を選択し、開いたウィンドウで列を選択し、自動的にチェックマークを外します。列を作成し、選択した列にバインドされた列を追加し、ヘッダーを LastName に設定し、データ フィールドを LastName に設定します。 「OK」をクリックします。
3. 中間データ層を作成し、
ソリューションを右クリックして、[New-Project-Class Library] を選択し、ClaSQL という名前を付け、保存パスを選択して、[OK] をクリックします。開いたクラス ライブラリに次のコードを追加します。
Imports System.Data.SqlClient
パブリッククラス 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()
'コマンド オブジェクトを定義し、ストアド プロシージャ Dimscom 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 = 姓
'データ セット オブジェクトを定義し、データ セット Dim ds As New DataSet を設定します。
試す
sda.Fill(ds)
元を例外としてキャッチ
試行を終了する
DSを返す
終了機能
クラスの終了
4.
ClaSql プロジェクトを右クリックして [生成] を選択し、WebSql プロジェクトの [参照] を右クリックして [参照の追加] を選択し、追加するプロジェクトを選択します。 ClaSql プロジェクトを選択したコンポーネント ボックスに追加し、[OK] をクリックします。
5. WebForm1.aspx フォーム コードの設計
WebSql プロジェクトの下の WebForm1.aspx ファイルを開き、Button ボタンをダブルクリックしてコード ウィンドウを開きます。完全なコードは次のとおりです。
Public Class WebForm1
System.Web.UI.Page の継承
「フォームコード省略」検索ボタンeventPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button1.Clickを処理します
'テキスト ボックスの入力を保存する変数を定義し、セキュリティ目的でそれを変換します Dim lastname As String = TextBox1.Text
姓 = 姓.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()
エンドサブ
終了クラス
6: 注意
: セキュリティ上の理由から、データベースを操作するときは次の措置を講じる必要があります。
1. ストアド プロシージャを使用する
2. SA アカウントを使用しない
3. 複雑なアカウントにはパスワードを使用する
4. データ挿入には、異なるものを使用してみてください
5. コードを実装できるように、データベース操作は可能な限り中間層 (クラス ライブラリ) にカプセル化する必要があります
。
将来の変更が容易になります。