vb.net
  • sql-server-2008
  • 2011-11-01 22 views 0 likes 
    0

    我的代码有什么问题?我的代码有什么问题?使用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) 
         dtReader = cmd.ExecuteReader 
         If dtReader.HasRows = False Then 
          cbo_numberroom.Items.Add(x) 
         End If 
         dtReader.Close() 
        Next 
    

    我正在为医院申请。贵宾室的房间号码为200至208 此代码的用途是。如果选择了作为VIP的单选按钮,他将检查数字200是否已经在数据库中以及房间的状态是否处于登记状态。如果是,那么数字200不会再次出现在组合框noRoom中。

    但这段代码的结果。虽然200已经被填补,仍然会出现在组合框中选择房号 我真的希望帮助

    感谢之前

    回答

    4
    1. 您没有使用参数化查询
    2. 有一个空间字符后“签”,这可能不是在数据库中,所以没有匹配
    3. 您没有使用房间号作为参数传递给SQL查询
    4. 最重要的:你不告诉我们什么错误或者是!

    我可以看到您正在编写no_room='x'。这会检查数据库的列no_room中是否有'x'字符。

    如果你想检查的房间的x数量是否已经在数据库中,你应该使用

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

    没有错误。但是这个代码的结果。虽然200已经填满,但仍然出现在组合框中以选择房间号码。你能举个例子吗? –

    +0

    重叠编辑,现在有一个示例。 –

    +0

    @roomNumber它是数据库中的字段名称还是自由命名? –

    相关问题