Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 我的代码有什么问题?使用SQLServer2008_Vb.net_Sql Server 2008 - Fatal编程技术网

Vb.net 我的代码有什么问题?使用SQLServer2008

Vb.net 我的代码有什么问题?使用SQLServer2008,vb.net,sql-server-2008,Vb.net,Sql Server 2008,我的代码有什么问题 Dim x As Integer Dim sql As String ModConnectDb.OpenDatabase() conn.Open() For x = 200 To 208 sql = "select * from ttransaction where no_room= 'x' and status= 'checkin '" cmd = New SqlCommand(sql, conn)

我的代码有什么问题

Dim x As Integer
    Dim sql As String
    ModConnectDb.OpenDatabase()
    conn.Open()
    For x = 200 To 208
        sql = "select * from ttransaction where no_room= 'x' and status= 'checkin '"
        cmd = New SqlCommand(sql, conn)
        dtReader = cmd.ExecuteReader
        If dtReader.HasRows = False Then
            cbo_numberroom.Items.Add(x)
        End If
        dtReader.Close()
    Next
我正在向医院提出申请。贵宾室的房间号是200到208 本规范的目的是:。如果选择了单选按钮,他将检查号码200是否已经在数据库中,以及房间登记的状态是否正确。如果是,则数字200将不会再次出现在组合框noRoom中

但是这个代码的结果。虽然200已填充,但仍显示在组合框中以选择房间号 我真的希望这能帮上忙

谢谢你

  • 您没有使用参数化查询
  • “checkin”后面有一个空格字符,它可能不在数据库中,因此不匹配
  • 您没有将房间号用作SQL查询的参数
  • 最重要的是:你没有告诉我们错误是什么 我可以看到你正在写
    no\u room='x'
    。这将检查数据库的
    no\u room
    列中是否有“x”字符

    如果要检查数据库中是否已存在编号为
    x
    的房间,应使用

    cmd = New SqlCommand("SELECT * FROM tTransaction WHERE no_room = @roomNumber AND status = 'checkin'", conn)
    cmd.Parameters.AddWithValue("@roomNumber", x)
    ...
    
  • 您没有使用参数化查询
  • “checkin”后面有一个空格字符,它可能不在数据库中,因此不匹配
  • 您没有将房间号用作SQL查询的参数
  • 最重要的是:你没有告诉我们错误是什么 我可以看到你正在写
    no\u room='x'
    。这将检查数据库的
    no\u room
    列中是否有“x”字符

    如果要检查数据库中是否已存在编号为
    x
    的房间,应使用

    cmd = New SqlCommand("SELECT * FROM tTransaction WHERE no_room = @roomNumber AND status = 'checkin'", conn)
    cmd.Parameters.AddWithValue("@roomNumber", x)
    ...
    

    没有错误。但是这个代码的结果。虽然200已填充,但仍显示在组合框中以选择房间号。你能给我举个3号的例子吗?@roomNumber它是数据库中的字段名还是免费命名?我试过了。结果仍然如此。顺便说一句,我把它们放在事件检查更改中,以防我的错误。爱中的代码已经在运行。非常感谢,没有错。但是这个代码的结果。虽然200已填充,但仍显示在组合框中以选择房间号。你能给我举个3号的例子吗?@roomNumber它是数据库中的字段名还是免费命名?我试过了。结果仍然如此。顺便说一句,我把它们放在事件检查更改中,以防我的错误。爱中的代码已经在运行。非常感谢你的朋友