来自Vb.net 2010中列表框的sqldatabase变量声明

时间:2013-12-21 23:31:11

标签: sql-server vb.net vb.net-2010 listboxitem

我正在尝试将所选项目从列表框保存到数据库但是当我从列表框中选择项目时,我得到一个运行时错误,即未声明变量(RomID)。这是代码。我错过了什么?!

    If (con.State = ConnectionState.Closed) Then
        con.Open()
    End If


    Dim Name As SqlParameter = New SqlParameter("@Name", TxtName.Text)
    Dim Pass As SqlParameter = New SqlParameter("@PassportNum", TxtPassNum.Text)
    Dim Mobile As SqlParameter = New SqlParameter("@PhoneNUm", TxtMobile.Text)
    Dim RomID As SqlParameter = New SqlParameter("@ID", Integer.Parse(ListBox1.SelectedItem))
    Dim ChckIn As SqlParameter = New SqlParameter("@CheckIndate", DateTime.Now.Date)
    Dim Email As SqlParameter = New SqlParameter("@Email", TxtEmail.Text)

    Cmd.Parameters.Add(Name)
    Cmd.Parameters.Add(Pass)
    Cmd.Parameters.Add(Mobile)
    Cmd.Parameters.Add(RomID)
    Cmd.Parameters.Add(ChckIn)
    Cmd.Parameters.Add(Email)
    Cmd.CommandText = "Update Rooms set Status ='Booked' where ID = @RomID"
    Cmd.ExecuteNonQuery()
    Cmd.CommandText = "insert into Reservation(RoomID,GuestName,PassportNum,PhoneNUm,CHeckIndate,Email) VALUES(@RomID,@Name,@Pass,@Mobile,@ChckIn,@Email)"
    Cmd.ExecuteNonQuery()
    MessageBox.Show("Reservation Was Successful")

2 个答案:

答案 0 :(得分:0)

我没有以同样的方式宣布你可以试试这个:

删除:

Dim RomID As SqlParameter =
  New SqlParameter("@ID", Integer.Parse(ListBox1.SelectedItem))

尝试这样的事情:

command.Parameters.Add("@ID", SqlDbType.Int)
command.Parameters("@ID").Value = Integer.Parse(ListBox1.SelectedItem)

答案 1 :(得分:0)

你有这个:

Dim RomID As SqlParameter =
  New SqlParameter("@ID", Integer.Parse(ListBox1.SelectedItem))

我认为你的意思是:

Dim RomID As SqlParameter =
  New SqlParameter("@RomID", Integer.Parse(ListBox1.SelectedItem))