如何在 vb.net、SQL Server 中为多个搜索制作代码
Posted
技术标签:
【中文标题】如何在 vb.net、SQL Server 中为多个搜索制作代码【英文标题】:How make code for multiple search at the time in vb.net, SQL Server 【发布时间】:2021-02-21 07:33:17 【问题描述】:在过去的三个月里,我致力于在 vb.net 中创建单个搜索代码的代码,但我需要帮助才能同时进行多个搜索,例如:- 我使用 vb.net 在数据库中搜索已经完成,但随后我需要搜索 shart + red olor 也完成了,然后我需要搜索 shart + red color + brand + style 等等。
我的主要问题是我搜索多个 any,我需要 shart + red color + brand + style 正式,所以我该怎么做。建议我...检查 img 以获得更好的理解
search multiple at time
我的单条搜索码:
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
【问题讨论】:
什么或谁是 shart ?' SQL Injection alert - 您应该不将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables 【参考方案1】:下面是一个查询示例,可让您使用零个、一个或多个参数进行搜索:
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
部分为真,并且该组条件匹配每条记录并被有效忽略,否则 ColumnN = @ColumnN
部分将仅匹配适当的记录。
编辑:
作为记录,当我在过去发布这样的示例时已经指出,数据库每次都会使用相同的执行计划,因此对于某些查询可能有些低效。如果这对您来说是个问题,您应该考虑根据具体情况动态构建 SQL。
【讨论】:
非常感谢您的回复,在将此代码应用到项目后,它可以完美运行。 非常感谢您的回复,在将此代码应用于项目后,它的完美工作。我已经关注你了,我还有更多疑问。??谢谢以上是关于如何在 vb.net、SQL Server 中为多个搜索制作代码的主要内容,如果未能解决你的问题,请参考以下文章
在 VB.NET 中从 SQL Server 执行存储过程?
如何使用 vb.net 将 excel 文件导入 sql server
如何在 SQL Server 表中创建图像列并使用 VB 在 ASP.NET 中检索它
如何检查 vb .net 项目的 sql server 中是不是存在数据库和表?