0

我有在 VB.NET 中开发的应用程序。现在我需要为该应用程序实现新功能。

所以我创建了处理新功能的方法。我需要在这个方法中调用三个存储过程,其中一个 SP 来自一个数据库,另外两个 SP 来自不同的数据库。

现在我可以通过调用一个连接字符串来调用 SP。但我不知道如何打开两个连接字符串并调用不同数据库中的 SP。

我的代码中有这样的条件:

 If application("skipCharge") Is Nothing Then
 Console.WriteLine("App charges")
 chargeApplication(cxnmarketDb, ConnectionStrings("Applications_" & siteName).ConnectionString, dtAppStart)
 Console.WriteLine()
  End If

这里Applications_是我的连接字符串名称。我在想的是我需要将我的第二个数据库连接字符串放在 if 语句中。但是如果我把 if 放在里面,不知道如何选择两者。

这是我方法中的代码:

 Private Sub chargeApplication(ByRef cxnmarketDb As SqlConnection, ByVal cxnApplicationPlaceString As String, ByVal dtAppStart As Date)

        Const chargeEventText As String = "This is a text "
        Using cxnPlace As SqlConnection = New SqlConnection(cxnApplicationPlaceString)
            Try
                cxnPlace.Open()
            Catch exDetail As SqlException
                Console.WriteLine(" +  cxnPlace.SqlException :: " & exDetail.Message)
            Catch exDetail As Exception
                Console.WriteLine(" +  cxnPlace.Exception :: " & exDetail.Message)
            End Try

            If cxnPlace.State = ConnectionState.Open Then

                Using cmdAppList As SqlCommand = cxnPlace.CreateCommand()
                 cmdAppList.CommandType = CommandType.StoredProcedure
                 cmdAppList.CommandText = "First_SP"
                 cmdAppList.CommandTimeout = 60


                 Try
                  Using sdrAppCharge As SqlDataReader = cmdAppList.ExecuteReader()
                  Do While sdrAppCharge.Read()
                  Using cmdChargeSearch As SqlCommand = cxnmarketDb.CreateCommand()
                    cmdChargeSearch.CommandType = CommandType.StoredProcedure
                    cmdChargeSearch.CommandText = "second_SP"
                    cmdChargeSearch.CommandTimeout = 60

在这里我可以调用 first_SP。但在那之后,它将进入 END 语句。因为 second_SP 在不同的连接字符串中并且没有打开。

那么如何在这里打开两个连接字符串并调用我的存储过程呢?

4

0 回答 0