首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vb.net、SQL Server中实现一次多次检索

如何在vb.net、SQL Server中实现一次多次检索
EN

Stack Overflow用户
提问于 2021-02-21 15:33:18
回答 1查看 43关注 0票数 0

在过去的三个月里,我在vb.net中创建了一个单一的搜索代码,但我需要帮助来进行多个搜索,例如:-我使用vb.net在数据库中搜索是完成的,但然后我需要搜索shart +红色颜色也做了,然后我需要搜索shart +红色颜色+品牌+风格和更多。

我的主要问题是我搜索多个任何,我需要shart +红色+品牌+风格正式,所以我怎么做呢?建议我..。查看img以更好地了解

search multiple at time

我的单一搜索代码:

代码语言:javascript
复制
 Private Sub loadsearch_product_article(ByVal records As String)
    Try
        conn.Open()
        TabControl1.SelectedTab = TabPage2
        Dim cmd As New SqlCommand("select * from purchase_item_table2 where artical_no like '%" & txtPR_artical_no.Text & "%'", conn)
        Dim sdr As SqlDataReader = cmd.ExecuteReader()
        DataGridView1.Rows.Clear()
        While sdr.Read()

           DataGridView1.Rows.Add(sdr(0), sdr(1), sdr(2), sdr(3), sdr(4), sdr(7), sdr(8), sdr(9), sdr(10), sdr(11), sdr(12), sdr(13), sdr(14), sdr(15), sdr(16), sdr(17), sdr(18), sdr(19), sdr(21), sdr(22), sdr(23), sdr(24), sdr(25), sdr(26), sdr(27), sdr(28), sdr(29), sdr(30), sdr(31))
        End While
        conn.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
        conn.Close()
    End Try

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-21 15:54:25

以下是允许您使用零个、一个或多个参数进行搜索的查询示例:

代码语言:javascript
复制
Dim sql = "SELECT *
FROM MyTable
WHERE (@Column1 IS NULL OR Column1 = @Column1)
AND (@Column2 IS NULL OR Column2 = @Column2)
AND (@Column3 IS NULL OR Column3 = @Column3)"

Dim command As New SqlCommand(sql, connection)

With command.Parameters
    .Add("@Column1", SqlDbType.VarChar, 50).Value = If(TextBox1.TextLength = 0, CObj(DBNull.Value), TextBox1.Text)
    .Add("@Column2", SqlDbType.VarChar, 50).Value = If(TextBox2.TextLength = 0, CObj(DBNull.Value), TextBox2.Text)
    .Add("@Column3", SqlDbType.VarChar, 50).Value = If(TextBox3.TextLength = 0, CObj(DBNull.Value), TextBox3.Text)
End With

如果参数设置为NULL,则@ColumnN IS NULL部件为true,并且该条件集匹配每条记录并被有效地忽略,否则ColumnN = @ColumnN部件将只匹配适当的记录。

编辑:

作为记录,当我在过去发布了一个类似这样的示例时,我已经指出,数据库每次都会使用相同的执行计划,因此对于某些查询来说,效率可能会有点低。如果这对您来说是一个问题,那么您应该考虑在逐个案例的基础上动态构建SQL。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66300101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档