Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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 VB座位预订文件输出错误_Vb.net - Fatal编程技术网

Vb.net VB座位预订文件输出错误

Vb.net VB座位预订文件输出错误,vb.net,Vb.net,我正在为课程创建一个座位预订程序,在该程序中,用户选择他/她希望预订的座位行,然后选择他们希望预订的座位数 Public Class Form1 Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged End Sub Private Sub Button1_Click(sender As Object, e As Eve

我正在为课程创建一个座位预订程序,在该程序中,用户选择他/她希望预订的座位行,然后选择他们希望预订的座位数

Public Class Form1

Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim rowNumber As Integer
    Dim SeatsData As String(,) = {{"booked", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10"}, {"booked", "booked", "booked", "booked", "booked", "booked", "booked", "booked", "booked", "booked"}, {"C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10"}, {"D1", "booked", "booked", "D4", "D5", "D6", "D7", "D8", "D9", "D10"}, {"E1", "E2", "booked", "booked", "booked", "E6", "E7", "E8", "E9", "E10"}}

    If ListBox2.Text = "A" Then
        rowNumber = 0
    ElseIf ListBox2.Text = "B" Then
        rowNumber = 1
    ElseIf ListBox2.Text = "C" Then
        rowNumber = 2
    ElseIf ListBox2.Text = "D" Then
        rowNumber = 3
    ElseIf ListBox2.Text = "E" Then
        rowNumber = 4
    End If

    FindSeats(rowNumber, ListBox1.Text, SeatsData)

End Sub
Function FindSeats(ByVal RowNumber As Integer, ByVal NumSeats As Integer, SeatsData As Array) As String

    Dim i As Integer = 0
    Dim arrayPos As Integer = 0
    Dim largestStreak As Integer = 0
    Dim FirstSeat As String = 0
    Dim LastSeat As String = 0
    Dim foundSeats As Boolean = False
    Dim returnMsg As String = ""

    Do While foundSeats = False
        Dim seatChar As String = SeatsData(RowNumber, arrayPos)
        arrayPos = arrayPos + 1

        If seatChar = "booked" Then
            i = 0
        Else
            If i = 0 Then
                FirstSeat = seatChar
            End If
            i = i + 1

            If i > largestStreak Then
                largestStreak = i
            End If

        End If

        If i = NumSeats Then
            LastSeat = seatChar
            If FirstSeat = LastSeat Then
                returnMsg = "Found seat: " + FirstSeat
            Else
                returnMsg = "Found seats: " + FirstSeat + " - " + LastSeat
            End If
            MsgBox(returnMsg)
            Label3.Text = returnMsg
            foundSeats = True
            Exit Do
        End If

        If arrayPos = 10 Then
            returnMsg = "Not enough available seats, maximum available seats: " + CStr(largestStreak)
            MsgBox(returnMsg)
            Label3.Text = returnMsg
            Exit Do
        End If
    Loop
End Function
End Class
我遇到的问题是,当用户选择他们想要的座位数量而不是他们想要的那一行时,程序会自动在a行预订座位。我如何解决这个问题?此外,当用户选择一行而不是多个座位(反之亦然)时,表单将进行编码并输出以下错误消息:“Microsoft.VisualBasic.dll中出现“System.InvalidCastException”类型的未处理异常

其他信息:从字符串“”到类型“Integer”的转换无效


如何修复这些错误?我对VB很陌生,所以如果有任何明显的问题,我道歉

由于调用
FindSeats
如下所示,因此会出现异常:

FindSeats(rowNumber, ListBox1.Text, SeatsData)
请注意,
FindSeats
的签名实际上是

Function FindSeats(RowNumber As Integer, NumSeats As Integer, SeatsData As Array) As String
因此,将字符串
ListBox1.Text
作为
numsets
参数传递,该参数是一个
整数。由于使用了
选项Strict Off
,VB.Net尝试将
列表框1.Text
中的字符串隐式转换为
整数

如果
ListBox1.Text
为空,则此操作失败,异常消息会告诉您:

从字符串“”到类型“整型”的转换无效

首先,将
选项Strict
转到
On
,然后您将看到所有这些漂亮的隐式转换,它们会在运行时影响您。继续,用有意义的安全显式转换替换它们

考虑一下当用户单击
按钮1
而之前没有在
列表框1
中选择某个内容时,您希望如何处理这种情况


可能您希望使用来处理此类情况,或者可能在
列表框1中预先选择一个有效值

由于调用
FindSeats
如下所示,因此会出现异常:

FindSeats(rowNumber, ListBox1.Text, SeatsData)
请注意,
FindSeats
的签名实际上是

Function FindSeats(RowNumber As Integer, NumSeats As Integer, SeatsData As Array) As String
因此,将字符串
ListBox1.Text
作为
numsets
参数传递,该参数是一个
整数。由于使用了
选项Strict Off
,VB.Net尝试将
列表框1.Text
中的字符串隐式转换为
整数

如果
ListBox1.Text
为空,则此操作失败,异常消息会告诉您:

从字符串“”到类型“整型”的转换无效

首先,将
选项Strict
转到
On
,然后您将看到所有这些漂亮的隐式转换,它们会在运行时影响您。继续,用有意义的安全显式转换替换它们

考虑一下当用户单击
按钮1
而之前没有在
列表框1
中选择某个内容时,您希望如何处理这种情况


可能您希望使用来处理此类情况,或者可能在
列表框1中预先选择一个有效值

由于调用
FindSeats
如下所示,因此会出现异常:

FindSeats(rowNumber, ListBox1.Text, SeatsData)
请注意,
FindSeats
的签名实际上是

Function FindSeats(RowNumber As Integer, NumSeats As Integer, SeatsData As Array) As String
因此,将字符串
ListBox1.Text
作为
numsets
参数传递,该参数是一个
整数。由于使用了
选项Strict Off
,VB.Net尝试将
列表框1.Text
中的字符串隐式转换为
整数

如果
ListBox1.Text
为空,则此操作失败,异常消息会告诉您:

从字符串“”到类型“整型”的转换无效

首先,将
选项Strict
转到
On
,然后您将看到所有这些漂亮的隐式转换,它们会在运行时影响您。继续,用有意义的安全显式转换替换它们

考虑一下当用户单击
按钮1
而之前没有在
列表框1
中选择某个内容时,您希望如何处理这种情况


可能您希望使用来处理此类情况,或者可能在
列表框1中预先选择一个有效值

由于调用
FindSeats
如下所示,因此会出现异常:

FindSeats(rowNumber, ListBox1.Text, SeatsData)
请注意,
FindSeats
的签名实际上是

Function FindSeats(RowNumber As Integer, NumSeats As Integer, SeatsData As Array) As String
因此,将字符串
ListBox1.Text
作为
numsets
参数传递,该参数是一个
整数。由于使用了
选项Strict Off
,VB.Net尝试将
列表框1.Text
中的字符串隐式转换为
整数

如果
ListBox1.Text
为空,则此操作失败,异常消息会告诉您:

从字符串“”到类型“整型”的转换无效

首先,将
选项Strict
转到
On
,然后您将看到所有这些漂亮的隐式转换,它们会在运行时影响您。继续,用有意义的安全显式转换替换它们

考虑一下当用户单击
按钮1
而之前没有在
列表框1
中选择某个内容时,您希望如何处理这种情况


您可能希望使用来处理此类情况,或者在
列表框1

中预先选择一个有效值。一些提示:为控件指定有意义的名称<代码>列表框1
很糟糕,
NumberOfSeatsListBox
很有意义。另外,将业务逻辑与UI分离。这将使测试代码变得更容易。一些提示:为控件指定有意义的名称<代码>列表框1
很糟糕,
NumberOfSeatsListBox
很有意义。另外,将业务逻辑与UI分离。这将使测试代码变得更容易。一些提示:为控件指定有意义的名称<代码>列表框1
很糟糕,
NumberOfSeatsListBox
很有意义。另外,将业务逻辑与UI分离。这将使测试代码变得更容易。一些提示:为控件指定有意义的名称<代码>列表框1
很糟糕,
NumberOfSeatsListBox
很有意义。另外,将您的业务逻辑与