データベース内の一致する行を検索して Gridview に表示するストアド プロシージャを作成する必要があります。ユーザーは複数のオプションを選択してフォームを検索できますが、一部のオプションは必須ではありません。
ストアド プロシージャを作成しましたが、SQL Server Management Studio コンソールで実行した場合にのみ結果が表示されます。ストアド プロシージャは、aspx ページの gridview にレコードを表示していません。
ここで何か間違ったことをしているかどうかを調べてください。
私が作成したストアド プロシージャは次のようなものです。
ALTER PROCEDURE dbo.ProcName
@abc varchar(50) = null,
@def varchar(50) = null,
@ghi Int = null,
@jkl varchar(50) = null,
@mno varchar(50) = null
As
Begin
SELECT abc,def,ghi,jkl,mno,rst from TableName
where(@abc IS NULL OR abc= @abc)
AND (@def IS NULL OR def = @def)
AND (@ghi IS NULL OR ghi = @ghi)
AND (@jkl IS NULL OR jkl = @jkl)
AND (@mno IS NULL OR mno = @mno)
End
Go
これは、グリッドビューでレコードを表示するためにasp.netページで使用しているコードです:
Sub showResult(Source as Object, E as EventArgs)
Dim oConn As SQLConnection
Dim oComm As SQLCommand
Dim da As SqlDataAdapter
Dim ds As DataSet
Dim sSQL As String
Dim sConn As String
Dim strloc, listtype, roomno, furnishing, spec, forrent, price, area, email
strloc=List_Location.SelectedItem.Text
listtype=List_Type.SelectedItem.Text
roomno=List_RoomNo.SelectedItem.Value
furnishing=List_Furnishing.SelectedItem.Text
forrent=List_RentSale.SelectedItem.Value
sConn = ConfigurationManager.ConnectionStrings("xyz").ConnectionString
oConn = New SQLConnection(sConn)
oComm = New SQLCommand("SearchP",oConn)
oConn.Open()
oComm.CommandType = CommandType.StoredProcedure
oComm.Parameters.Add(New SqlParameter("@abc", SqlDbType.VarChar, 50))
oComm.Parameters("@abc").Value = strloc
oComm.Parameters.Add(New SqlParameter("@def", SqlDbType.VarChar, 50))
oComm.Parameters("@def").Value = listtype
oComm.Parameters.Add(New SqlParameter("@ghi", SqlDbType.Int))
oComm.Parameters("@ghi").Value = roomno
oComm.Parameters.Add(New SqlParameter("@jkl", SqlDbType.VarChar, 50))
oComm.Parameters("@jkl").Value = furnishing
oComm.Parameters.Add(New SqlParameter("@mno", SqlDbType.VarChar, 50))
oComm.Parameters("@mno").Value = forrent
da = New SqlDataAdapter(oComm)
ds = New DataSet()
Try
panel1.visible="true"
da.Fill(ds,"TableName")
myGridView.DataSource=ds.Tables("TableName").DefaultView
myGridView.EmptyDataText = "No records found"
myGridView.DataBind()
Catch ex As Exception
lblResults.text = ex.Message
Finally
oComm.Dispose()
oConn.Dispose()
oConn.Close()
End Try
End Sub