机房收费系统之组合查询

相信大家在进行机房收费系统的组合查询的时候遇到过这个问题吧

就是在进行查询的时候如果是卡号的大小来查询的话往往出错,因为什么呢,因为我们在进行查询的时候总是会在查询的字符用当引号括起来,比如 select * from card_id where student_Info = '1'

然后我们在进行组合查询的时候就想当然的就会这么写select * from card_id where student_info<'7',可是在数据库查询中,其实数字的查询语句是不需要加单引号的,所以才让我们出现了这么个困难。

如果我们的卡号有222,333,444,那么如果我们查大于1的卡号没问题,如果查7的话就会一条都没有,那是因为如果我们加了单引号,那么数据库就会默认的从第一个数字开始比较大小,以此类推,所以才会出现命名代码看着没错,运行也不出错,但就是出不来结果的问题,下面就是一小段该问题的代码,望大家多多提出意见哈


 If Not Testtxt(cmbConnect(0).Text) And Not Testtxt(cmbConnect(1).Text) Then
         If IsNumeric(txtSomeThing(0).Text) Then   '如果不按照数字大小来进行查询的话,不需要在乎大小问题
        '一个条件是的查询,且是数字查询
              txtSQL = "select * from line_info where  " & FileName1 & Operate1 & " " & Val(Trim(txtSomeThing(0).Text)) & " "
            Set mrc = ExecuteSQL(txtSQL, Msgtext)
         Else
            '非数字查询
              txtSQL = "select * from line_info where  " & FileName1 & Operate1 & "'" & Val(Trim(txtSomeThing(0).Text)) & "'"
            Set mrc = ExecuteSQL(txtSQL, Msgtext)
              '如果是卡号大小de问题,不需要加单引号
            
          End If
'两行条件的查询
        If Testtxt(cmbConnect(0).Text) And Not Testtxt(cmbConnect(1).Text) Then
            If Not Testtxt(cmbFile(1).Text) Or Not Testtxt(cmbOperate(1).Text) Or Not Testtxt(txtSomeThing(1).Text) Then
                MsgBox "请完整的输入要组合的条件!", vbOKOnly + vbExclamation, "提示"
                Exit Sub
            Else

                If cmbConnect(1).Text = "" Then
                    If IsNumeric(txtSomeThing(1).Text) Then   '如果不按照数字大小来进行查询的话,不需要在乎大小问题
                    txtSQL = "select * from line_info where " & FileName1 & Operate1 & " " & Val(Trim(txtSomeThing(0).Text)) & " " & " " & Trim(Connect1)                               & " " & Filename2 & Operate2 & "" & Val(Trim(txtSomeThing(1).Text)) & ""
                     Set mrc = ExecuteSQL(txtSQL, Msgtext)
                Else
                    txtSQL = "select * from line_info where " & FileName1 & Operate1 & "'" & Trim(txtSomeThing(0).Text) & "'" & " " & Trim(Connect1) & " "                              & Filename2 & Operate2 & "'" & Trim(txtSomeThing(1).Text) & "'"
                     Set mrc = ExecuteSQL(txtSQL, Msgtext)
                     End If
                     
                End If
            End If
        End If

      那么接下来就简单了吧


你可能感兴趣的:(机房收费系统之组合查询)