こんにちは
Visual studioを使って
VB.NETで商品検索機能を作成することにしたのですが
データベースからストアドプロシージャを使って検索しましたが
うまく検索結果を表示されることができません。
おそらくストアドプロシージャを呼び出せてないかと思います。
流れは検索条件として商品コードと商品名をテキストボックスで取得して
ボタンをクリックするとdtoクラスのlistItemメソッドでSQLの処理をし
結果をDataSet型で返して、GridViewに結果を入れる
VB
1 '商品検索メソッド 2 Public Function listItem(name As String, code As Integer) As DataSet 3 Dim setting As ConnectionStringSettings =ConfigurationManager.ConnectionStrings("SelfAsp") 4 5 Using db As New SqlConnection(setting.ConnectionString) 6 db.Open() 7 Dim comm As SqlCommand = db.CreateCommand 8 comm.CommandType = CommandType.StoredProcedure 9 comm.CommandText = "DrinklistItem" 10 Dim dataSet As DataSet = New DataSet() 11 comm.Parameters.Clear() 12 'ストアドプロシージャに引数を渡す 13 comm.Parameters.Add("@Namelist", SqlDbType.Text).Value = name 14 comm.Parameters.Add("@Codelist", SqlDbType.Int).Value = code 15 '検索結果をDataSet型に渡す 16 Using adapter As SqlDataAdapter = New SqlDataAdapter(comm) 17 adapter.Fill(dataSet, "drink") 18 End Using 19 comm.ExecuteNonQuery() 20 21 Return dataSet 22 db.Close() 23 End Using 24 End Function
vb
1 Protected Sub listbtn_Click(sender As Object, e As EventArgs) Handles listbtn.Click 2 Dim code As Integer = TextCode.Text 3 Dim name As String = TextName.Text 4 Dim dataSet As DataSet 5 Dim dto As New dto 6 dataSet = dto.listItem(name, code) 7 Me.Gridlist.DataSource = dataSet 8 9 End Sub
ストアドプロシージャです。
sql
1CREATE PROCEDURE [dbo].[DrinklistItem]( 2@Namelist nvarchar(200), 3@Codelist int) 4 5AS 6begin 7 8SELECT [code],[name],[price],[count],[favorite] 9FROM [drink] 10WHERE name LIKE '%@Namelist%' OR code LIKE '%@Codelist%' 11 12END
回答3件
あなたの回答
tips
プレビュー