2013-12-21 12 views
0

我想保存從列表框中選擇的項目到數據庫,但是當我從列表框中選擇項目時我得到一個運行時錯誤,該變量(RomID)是未宣佈。這是代碼。我錯過了什麼?!sqldatabase從Vb.net列表框中的變量聲明

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") 

回答

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) 
+0

2010年VB我不能有每次我嘗試鍵入,我最終有一個錯誤! – user3126241

+0

嘗試delcare它是這樣的:使用連接作爲新的SqlConnection(connectionString) 昏暗的命令作爲新的SqlCommand(commandText,連接)這是從一個MSDN示例:http://msdn.microsoft.com/en-us/library/ system.data.sqlclient.sqlcommand.parameters%28v = vs.110%29.aspx – Joe

+0

我想出解決方案,謝謝大家! – user3126241

0

你有這樣的:

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

我想你的意思是這樣的: 「command.parameters」

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

我試過改變它,但最終我面臨着同樣的錯誤! – user3126241