我有在 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 在不同的连接字符串中并且没有打开。
那么如何在这里打开两个连接字符串并调用我的存储过程呢?