2016-01-07 58 views
1

嗨我已经发布了这个问题,但dint得到答案,请帮助我通过下拉列表显示gridview。下面是一个没有必要的,因为filter有你已经在查询的末尾添加相同的值在vb.net编辑code.How从asp.net使用vb.net下拉列表中显示gridview

 Private Sub BindGridView() 
    Dim filter As String = "" 
    If ddlOwnerDepartment.SelectedValue <> "" Then 
     filter = filter & " AND OwnerDepartment ='" & ddlOwnerDepartment.SelectedValue & "'" 
    End If 
    Dim table1 As DataTable = New DataTable("Details") 
    table1.Columns.Add("ReferenceNo") 
    table1.Columns.Add("Title") 
    table1.Columns.Add("Counterparty") 
    table1.Columns.Add("OwnerDepartment") 
    table1.Columns.Add("Status") 
    table1.Columns.Add("CreatedBy") 
    table1.Columns.Add("CreatedOn") 
    table1.Columns.Add("link") 
    table1.Rows.Clear() 
    Dim conSQL As New SqlConnection(conStrDRS) 
    conSQL.Open() 
    Dim cmdSQL As SqlCommand = New SqlCommand("SELECT Title, ReferenceNo,OwnerDepartment,CreatedBy,CreatedOn,Status,Counterparty " & _ 
            " FROM [dbo].[Registration]" & filter) 

    cmdSQL.Connection = conSQL 
    Dim adptSQL As New SqlClient.SqlDataAdapter(cmdSQL) 
    Dim myDataSet As New DataSet() 
    adptSQL.Fill(myDataSet) 
    conSQL.Close() 
    gvDetails.DataSource = myDataSet.Tables(0) 'dvAlert 
    gvDetails.DataBind() 
End Sub   

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click 
    BindGridView() 
End Sub 
+0

问题是什么,你所面对?为什么你在'OwnerDepartment'上应用两次过滤器?另外,您应该使用参数化查询来避免SQL注入攻击。 –

+0

hello avi是什么问题?有什么错误?例外请与具体的问题来 – user1140237

+0

当我点击搜索没有可用的数据。 – avi

回答

0

代码你是串联filtersql query结束。

也不要连接值使用Parameterized SQL。像这样添加参数到你的sql查询中。

Dim cmdSQL As SqlCommand = New SqlCommand("SELECT Title, ReferenceNo,OwnerDepartment,CreatedBy,CreatedOn,Status,Counterparty " & 
           " FROM [dbo].[Registration] Where [email protected]"); 
cmdSQL.Paramters.AddWithValue("@OwnerDepartment",ddlOwnerDepartment.SelectedValue); 

编辑

Private Sub BindGridView(bool showAll) 
Dim filter As String = "" 
If ddlOwnerDepartment.SelectedValue <> "" Then 
    filter = filter & " AND OwnerDepartment ='" & ddlOwnerDepartment.SelectedValue & "'" 
End If 
Dim table1 As DataTable = New DataTable("Details") 
table1.Columns.Add("ReferenceNo") 
table1.Columns.Add("Title") 
table1.Columns.Add("Counterparty") 
table1.Columns.Add("OwnerDepartment") 
table1.Columns.Add("Status") 
table1.Columns.Add("CreatedBy") 
table1.Columns.Add("CreatedOn") 
table1.Columns.Add("link") 
table1.Rows.Clear() 
Dim conSQL As New SqlConnection(conStrDRS) 
conSQL.Open() 
Dim cmdSQL As SqlCommand = New SqlCommand("SELECT Title, ReferenceNo,OwnerDepartment,CreatedBy,CreatedOn,Status,Counterparty FROM [dbo].[Registration] "; 

if showAll==false then 
cmdSQL += "Where [email protected]"); 
cmdSQL.Paramters.AddWithValue("@OwnerDepartment",ddlOwnerDepartment.SelectedValue); 
End If 

cmdSQL.Connection = conSQL 
Dim adptSQL As New SqlClient.SqlDataAdapter(cmdSQL) 
Dim myDataSet As New DataSet() 
adptSQL.Fill(myDataSet) 
conSQL.Close() 
gvDetails.DataSource = myDataSet.Tables(0) 'dvAlert 
gvDetails.DataBind() 
End Sub 

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click 
BindGridView(true) 
End Sub 

现在,当您从dropdown search通从函数调用这个函数以虚假BindGridView(false)

+0

嗨Mairaj它的作品,但我的问题是我想显示时点击搜索按钮,请帮我。感谢您的回答 – avi

+0

IT应该可以检查您点击按钮时是否在'ddlOwnerDepartment.SelectedValue'中获得了价值? – Mairaj

+0

不,它只显示从下拉列表中不单击搜索 – avi

相关问题