【问题标题】:Search sql database using select dropdown?使用选择下拉菜单搜索 sql 数据库?
【发布时间】:2013-06-02 07:49:17
【问题描述】:

我已经设法让搜索功能正常工作,但它非常笨重:(

代码:

If dropdown_sV.Value = "N" Then
        If WhereParts > 0 Then
            WhereClause = WhereClause & " AND"
        End If
        WhereClause = WhereClause & " [sV] = 'N'"
        WhereParts = WhereParts + 1
    End If

    If dropdown_sV.Value = "G" Then
        If WhereParts > 0 Then
            WhereClause = WhereClause & " AND"
        End If
        WhereClause = WhereClause & " [sV] = 'G'"
        WhereParts = WhereParts + 1
    End If

我可以让这段代码更高效吗,因为我有很多带有以下选项的下拉菜单:N、G、O、A、R、U

维护我的应用程序将是一场噩梦。

【问题讨论】:

  • 请忽略我之前版本的这个问题 - 我已经设法解决了,但现在正在寻找更有效的方法

标签: asp.net sql-server database search select


【解决方案1】:

是的,您只能一次使用代码,即 每次都写下拉选择。您可以将代码简化为:

If WhereParts > 0 Then
  WhereClause = WhereClause & " AND"
  End If
  string value=dropdown_sV.Value;
  WhereClause = WhereClause & " [sV] = '"+dropdown_sV.Value+"'"
  WhereParts = WhereParts + 1

【讨论】:

    【解决方案2】:

    你可以使用:

    If dropdown_sV.SelectedIndex > -1 Then
        If WhereClause.Length > 0 Then
            WhereClause = WhereClause & " AND"
        End If
        WhereClause = WhereClause & " [sV] = " & dropdown_sV.Value
    End If
    

    但你真的应该考虑参数化你的查询(像这样):

    If dropdown_sV.SelectedIndex > -1 Then
        If WhereClause.Length > 0 Then
            WhereClause = WhereClause & " AND"
        End If
        WhereClause = WhereClause & " [sV] = @sV"
    End If
    

    WHERE 子句构建后,您只需要将参数与值关联起来:

    Dim cmd As SqlCommand = New SqlCommand(queryString, connectionString)
    cmd.Parameters.Add("sV", SqlDbType.VarChar, 50).Value = dropdown_sV.Value
    

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 2014-05-05
      • 2016-01-10
      • 1970-01-01
      相关资源
      最近更新 更多