我必須創建一個存儲過程,它將搜索數據庫中匹配的行並在GridView中顯示它們。用戶可以通過表單搜索選擇多個選項,其中一些選項不是強制性的。Gridview不在aspx頁面正確返回行
我已經創建了一個存儲過程,但僅當我在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頁面顯示在GridView中記錄:
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
請顯示您運行的查詢來執行sproc – Curt 2012-07-10 09:27:49
我建議您創建一個XML並傳遞給SQL過程 – Zyku 2012-07-10 09:28:14
如果兩個選項有給定的值(比如'@ abc'和'@ ghi') - 您是否期望行哪些條件*有*,哪些條件有* – 2012-07-10 09:36:03