【发布时间】:2017-01-02 13:00:02
【问题描述】:
我有高级搜索包含 combobox1,combobox2,combobox3 我搜索了一种在数据库中进行搜索的方法。 如果我选择 combobox1 而没有选择 combobox2 和 combobox3 并且如果我选择 combobox2 而不是选择 combobox1 和 combobox3 在 combobox3 和选择所有组合框中我没有找到解决方案,我是否需要为每种情况制作超过 SqlCommand ?或者有一种简单的方法可以做到这一点我尝试制作 SqlCommand
Public Sub Load_Main(ByVal projectid As Integer, ByVal pdocid As Integer, ByVal depid As Integer)
main_Datatable.Clear()
Dim cmd As New SqlCommand("select * from main where projectid=@projectid and pdocid=@pdocid and depid=@depid", DBConnection)
cmd.Parameters.Add("projectid", SqlDbType.Int).Value = projectid
cmd.Parameters.Add("pdocid", SqlDbType.Int).Value = pdocid
cmd.Parameters.Add("depid", SqlDbType.Int).Value = depid
DBConnection.Open()
main_Datatable.Load(cmd.ExecuteReader)
DBConnection.Close()
cmd = Nothing
End Sub
Load_Main(project_combo.SelectedValue, doc_combo.SelectedValue, Depart_combo.SelectedValue)
但是如果我没有选择另一个组合框,它就不起作用
【问题讨论】:
-
构建您的 sql 语句并添加参数,仅适用于非 o(或 null)的值。
-
使用存储过程然后你可以使用动态sql或者从代码中使用if条件来构建你的sql;选择一个。
-
另外,您应该将命令包装在 using 语句中,以便正确处理它们。
标签: sql sql-server vb.net visual-studio