vb.net使用不同的参数两次执行同​​一子操作

时间:2019-07-11 16:23:19

标签: vb.net parameter-passing

我有一个从查询结果生成csv文件的子

Private Sub generaReport(classe As String)

    Dim query As String = "select bla bla bla"

    Dim dt As New System.Data.DataTable()
    Using con As New SqlConnection(My.Settings.dbstartConnectionString)
        Using cmd As New SqlCommand(query, con)
            cmd.Parameters.AddWithValue("@ieri", dataDa)
            cmd.Parameters.AddWithValue("@domani", dataA)
            cmd.Parameters.AddWithValue("@classe", classe)
            Using sda As New SqlDataAdapter(cmd)
                sda.Fill(dt)
            End Using
        End Using
    End Using

    Dim elencoCsv As String = ToCSV(dt)

    If classe = "D" Then
        File.Delete(nomeFileCsvD)

        Using writer As New StreamWriter(nomeFileCsvD, True)
            writer.WriteLine(elencoCsv)
        End Using
    Else
        File.Delete(nomeFileCsvV)

        Using writer As New StreamWriter(nomeFileCsvV, True)
            writer.WriteLine(elencoCsv)
        End Using
    End If
    InvioEmail(My.Settings.emails)

    End
End Sub

我会像

这样称呼它两次
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            generaReport("D")
            generareport("V")
   End Sub

,但是第二次运行它仍然使用“ D”作为参数。我该如何解决?谢谢

1 个答案:

答案 0 :(得分:1)

按照书面规定,您在End Sub底部generaReport()行的前面有一个End语句。在文档中,End语句...

  

立即终止执行。

因此,使用“ D”参数执行后,整个应用程序将关闭。它不会两次运行“ D”,而根本不会运行“ V”。

摆脱End语句...