组合查询逻辑

来源:互联网 发布:五月天车祸现场知乎 编辑:程序博客网 时间:2024/06/01 07:49

           组合查询时需要理清三个组合内容在查询时是否起到了作用。


            查询时判断查询内容是否为空:

Private Sub btnQuery_Click(sender As Object, e As EventArgs) Handles btnQuery.Click        dgvGroupCheck.DataSource = ""        '判断组合框不为空            If cmbRelations1.Text = "" Then '如果第一个组合关系框为空                If cmbField1.Text = "" Or cmbOperator1.Text = "" Or txt1 = "" Then                MsgBox("第一行查询条件不能为空!", , "提示")                Exit Sub            End If        End If        If cmbRelations1.Text <> "" Then '如果选择了第一个组合关系                If cmbField2.Text = "" Or cmbOperator2.Text = "" Or txt2 = "" Then                MsgBox("第二行查询条件不能为空!", , "提示")                Exit Sub                If cmbRelations2.Text <> "" Then '选择了第一个组合关系后,又选择了第二个组合关系                        If cmbField3.Text = "" Or cmbField3.Text = "" Or txt3 = "" Then                        MsgBox("第三行查询条件不能为空", , "提示")                        Exit Sub                    End If                End If            End If                    Else            If cmbRelations1.Text = "" And cmbRelations2.Text <> "" Then '只选择了第二个组合关系                        cmbField3.Text = "" Or cmbField3.Text = "" Or txt3 = "" Then                    MsgBox("第三行查询条件不能为空", , "提示")                    Exit Sub                End If            End If        End If

           数据库存储过程实现:

             在数据库存储时通过字符串上的叠加来连接成数据库查询语句。

ALTER PROCEDURE [dbo].[GroupQuery]-- Add the parameters for the stored procedure here@cmbField1 varchar(20),        @cmbOperator1 varchar(20),        @txtContent1 varchar(20),        @cmbField2 varchar(20),        @cmbOperator2 varchar(20),        @txtContent2 varchar(20),        @cmbField3 varchar(20),        @cmbOperator3 varchar(20),        @txtContent3 varchar(20),        @cmbRelations1 varchar(20),        @cmbRelations2 varchar(20),        @tableName varchar(20)    ASdeclare @TempSql varchar(500)BEGIN SET @TempSql='SELECT * FROM '+@tableName +' WHERE ' +@cmbField1 +@cmbOperator1+char(39) + @txtContent1 + char(39)           IF (@cmbRelations1='')        BEGIN                    if (@cmbRelations2!='')            BEGIN                SET @TempSql=@TempSql+@cmbRelations2+CHAR(32)+@cmbField3+@cmbOperator3+CHAR(39)+@txtContent3+CHAR(39)                END            END    IF (@cmbRelations1!='')        BEGIN                SET @TempSql=@TempSql+@cmbRelations1+CHAR(32)+@cmbField2 +@cmbOperator2+CHAR(39)+@txtContent2+CHAR(39)             if (@cmbRelations2!='')            BEGIN                SET @TempSql=@TempSql+@cmbRelations2+CHAR(32)+@cmbField3+@cmbOperator3+CHAR(39)+@txtContent3+CHAR(39)                END            END    EXECUTE(@TempSql) END

原创粉丝点击