Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net 错误:即使在解密连接字符串之后,初始化字符串的格式也不符合从索引0开始的规范_.net - Fatal编程技术网

.net 错误:即使在解密连接字符串之后,初始化字符串的格式也不符合从索引0开始的规范

.net 错误:即使在解密连接字符串之后,初始化字符串的格式也不符合从索引0开始的规范,.net,.net,我确实在脚本中解密了我的连接字符串,但在运行脚本时仍然发现初始化字符串的错误格式不符合从索引0开始的规范 你能帮我纠正这个错误吗 初始化字符串的格式不符合从索引0开始的规范 下面是在脚本中调用的代码 代码: Public Function CCC_GetProductIdentfromRequest( ByVal dbPwOHelperPwO As ISingleDbObject) As String Dim scriptErrorBase As String = "Scrip

我确实在脚本中解密了我的连接字符串,但在运行脚本时仍然发现初始化字符串的错误格式不符合从索引0开始的规范

你能帮我纠正这个错误吗

初始化字符串的格式不符合从索引0开始的规范

下面是在脚本中调用的代码

代码:

Public Function CCC_GetProductIdentfromRequest( ByVal dbPwOHelperPwO As ISingleDbObject) As String
    Dim scriptErrorBase As String = "Script Error [CCC_GetProductIdentfromRequest]"
    Dim returnValue As iDatareader
    Dim results As New StringBuilder
        
    Dim lineProvider As New DbLineProvider()
        lineProvider.ProviderName = "System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=**************"
        'TEST DEBUG!
        'lineProvider.ConnectionString = "Data Source=""*******.*****.***\DSPAC29, 40039"";Initial Catalog=D1IM;Integrated Security=True;Pooling=False"
        'MANUAL EDIT: Neil Stevenson - Read from main database, so use current connection string
        lineProvider.ConnectionString = NES_Utils_Decrypt(VID_GetValueOfDialogdatabases("ConnectionString"))
        
    Dim connData As ConnectData = DbApp.Instance.Connect(lineProvider.ConnectionString)
    Dim cSQL As SqlExecutor = Connection.CreateSqlExecutor(connData.PublicKey)
    Dim pwoUID As String = dbPwoHelperPwo.GetValue("UID_PersonWantsOrg")
    
    Dim myQuery As String = String.Format("select " &
                            "apg.Ident_AccProductGroup " &
                            "from PersonWantsOrg pwo" &
                            " inner join QERAssign qas" &
                            "  On pwo.ObjectKeyOrdered = qas.XObjectKey" &
                            " inner join AccProduct apd" &
                            "  On qas.UID_AccProduct = apd.UID_AccProduct" &
                            " inner join AccProductGroup apg" &
                            "  On apd.UID_AccProductGroup = apg.UID_AccProductGroup " &
                            "where pwo.UID_PersonWantsOrg = '{0}'",pwoUID)
    Try
        returnValue = cSQL.SqlExecute(String.Format(myQuery))
            
        While returnValue.Read()
              results.Append(returnValue("Ident_AccProductGroup").ToString)            
        End While
    Catch ex As Exception
        Throw New Exception(String.Format("{0} {1} {2}", scriptErrorBase, myQuery, ex))
    End Try
    
    Return results.ToString
    
End Function

<BaseObjectTypeAttribute("RPSSubscription")> _
Public Function CCC_GetProductIdentfromRPSSub(ByVal dbRPSSubscription As ISingleDbObject) As String
    Dim scriptErrorBase As String = "Script Error [CCC_GetProductIdentfromRPSSub]"
    Dim repSubUID As String = dbRPSSubscription.GetValue("UID_RPSSubscription")

    Dim targetApp As String = String.Empty

    Dim returnValue As IDataReader
    Dim results As New StringBuilder
    
    Dim lineProvider As New DbLineProvider()
        lineProvider.ProviderName = "System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=****************"
        'TEST DEBUG!
        'lineProvider.ConnectionString = "Data Source=""*********.*******.****\DSPAC29, 40039"";Initial Catalog=D1IM;Integrated Security=True;Pooling=False"
        'MANUAL EDIT: Neil Stevenson - Read from main database, so use current connection string
        lineProvider.ConnectionString = NES_Utils_Decrypt(VID_GetValueOfDialogdatabases("ConnectionString"))
        
    Dim connData As ConnectData = DbApp.Instance.Connect(lineProvider.ConnectionString)
    
    Dim cSQL As SqlExecutor = Connection.CreateSqlExecutor(connData.PublicKey)

    Dim myQuery As String = String.Format("SELECT dp.ParameterValue " &
                "from RPSSubscription rps " &
                    "inner join RPSReport rpr " &
                    "   On rps.uid_rpsreport = rpr.uid_rpsreport " &
                    "inner join DialogParameterSet dps " &
                    "   On dps.objectKeyUsedBy = rps.XObjectKey " &
                    "inner join DialogParameter dp  " &
                    "   On dp.UID_DialogParameterSet = dps.UID_DialogParameterSet " &
                "Where dp.ParameterName = 'ApplicationName' And rps.UID_RPSSubscription = '{0}' " &
                    "Or dp.ParameterName = 'UIDCSMRoot' And rps.UID_RPSSubscription = '{0}'", repSubUID)

    Try
        returnValue = cSQL.SqlExecute(myQuery)

        If Not returnValue Is Nothing Then
            scriptErrorBase = scriptErrorBase + " returnValue has value"
            While returnValue.Read()
                scriptErrorBase = scriptErrorBase + " read returnValue"
                
                Dim paramValue As String = String.Empty
                'A simple report does not require an application name so this value may be empty if it has a value
                ' it is the CSMRoot - see next query.
                If Not returnValue("ParameterValue") Is Nothing Then
                    paramValue = returnValue("ParameterValue").ToString()
                Else
                    scriptErrorBase = scriptErrorBase + " returnValue 'ParameterValue' is Nothing"
                End If
                
                scriptErrorBase = scriptErrorBase + "assigned paramValue from returnValue"
                
                If Not String.IsNullOrEmpty(paramValue) Then
                    results.Append(paramValue)
                End If

            End While
        End If

    Catch ex As Exception
        Throw New Exception(String.Format("{0} {1} {2}", scriptErrorBase, myQuery, ex))
    End Try

    If Not results Is Nothing Then
        targetApp = results.ToString()
    End If

    If Not String.IsNullOrEmpty(targetApp) Then
        'simple reports have a parameterName refering to the CSMRoot which is related to the application name.
        If targetApp.Contains("-") Then
            myQuery = String.Format("SELECT Ident_CSMRoot FROM CSMRoot WHERE UID_CSMRoot = '{0}'", targetApp)
            'clear previous results
            targetApp = String.Empty
            results.Clear()

            Try
                returnValue = cSQL.SqlExecute(String.Format(myQuery))

                While returnValue.Read()
                    results.Append(returnValue("Ident_CSMRoot").ToString)
                End While

            Catch ex As Exception
                Throw New Exception(String.Format("{0} {1} {2}", scriptErrorBase, myQuery, ex))
            End Try

            targetApp = results.ToString()

        End If

        If Not String.IsNullOrEmpty(targetApp) Then
            targetApp = String.Format("Application: {0}", targetApp)
        End If

    End If

    Return targetApp

End Function```

Public Function CCC_getProductIdentintFromRequest(ByVal dbpwoHelpPerpwo作为ISingleDbObject)作为字符串
Dim scriptErrorBase As String=“脚本错误[CCC_GetProductIdentintFromRequest]”
将返回值设置为iDatareader
将结果设置为新的StringBuilder
将lineProvider设置为新的DbLineProvider()
lineProvider.ProviderName=“System.Data.SqlClient.SqlClientFactory,System.Data,版本=2.0.0.0,区域性=中性,PublicKeyToken=***********”
'测试调试!
'lineProvider.ConnectionString=“数据源=”“**************\DSPAC29,40039”“;初始目录=D1IM;集成安全性=True;池=False”
'手动编辑:Neil Stevenson-从主数据库读取,因此使用当前连接字符串
lineProvider.ConnectionString=NES\u Utils\u Decrypt(VID\u GetValueOfDialogdatabases(“ConnectionString”))
Dim connData As ConnectData=DbApp.Instance.Connect(lineProvider.ConnectionString)
Dim cSQL As SqlExecutor=Connection.CreateSqlExecutor(connData.PublicKey)
Dim pwoUID As String=dbPwoHelperPwo.GetValue(“UID_PersonWantsOrg”)
Dim myQuery As String=String.Format(“选择”&
“apg.Ident_AccProductGroup”&
“来自PersonWantsOrg pwo”&
“内部联接QERAssign qas”&
“在pwo.ObjectKeyOrdered=qas.XObjectKey上”&
“内部联接产品apd”&
“在qas.UID\u AccProduct=apd.UID\u AccProduct上”&
“内部联接AccProductGroup apg”&
“在apd.UID\u AccProductGroup=apg.UID\u AccProductGroup上”&
“where pwo.UID_PersonWantsOrg='{0}',pwoUID)
尝试
returnValue=cSQL.SqlExecute(String.Format(myQuery))
而returnValue.Read()是
结果.追加(returnValue(“Ident_AccProductGroup”).ToString)
结束时
特例
抛出新异常(String.Format(“{0}{1}{2}”,scriptErrorBase,myQuery,ex))
结束尝试
返回results.ToString
端函数
_
公共函数CCC_GetProductIdentintFromRPSSUB(ByVal dbRPSSubscription作为ISingleDbObject)作为字符串
Dim Script ERRORBASE As String=“脚本错误[CCC_GetProductIdentintFromRPSSUB]”
Dim repSubUID As String=dbRPSSubscription.GetValue(“UID\RPSSubscription”)
Dim targetApp As String=String.Empty
将返回值设置为IDataReader
将结果设置为新的StringBuilder
将lineProvider设置为新的DbLineProvider()
lineProvider.ProviderName=“System.Data.SqlClient.SqlClientFactory,System.Data,版本=2.0.0.0,区域性=中性,PublicKeyToken=***************”
'测试调试!
“lineProvider.ConnectionString=“数据源=”“******************\DSPAC29,40039”“;初始目录=D1IM;集成安全性=True;池=False”
'手动编辑:Neil Stevenson-从主数据库读取,因此使用当前连接字符串
lineProvider.ConnectionString=NES\u Utils\u Decrypt(VID\u GetValueOfDialogdatabases(“ConnectionString”))
Dim connData As ConnectData=DbApp.Instance.Connect(lineProvider.ConnectionString)
Dim cSQL As SqlExecutor=Connection.CreateSqlExecutor(connData.PublicKey)
Dim myQuery As String=String.Format(“选择dp.ParameterValue”&
“从rps订阅rps”&
“内部连接RPSReport rpr”&
“在rps.uid\u rpsreport=rpr.uid\u rpsreport上”&
“内部联接对话框参数集dps”&
“在dps.objectKeyUsedBy=rps.XObjectKey上”&
“内部联接对话框参数dp”&
“在dp.UID\u DialogParameterSet=dps.UID\u DialogParameterSet上”&
其中dp.ParameterName='ApplicationName'和rps.UID_RPSSubscription='{0}'&
或dp.ParameterName='UIDCSMRoot'和rps.UID_RPSSubscription='{0}',repSubUID)
尝试
returnValue=cSQL.SqlExecute(myQuery)
如果没有返回值,则值为空
scriptErrorBase=scriptErrorBase+“returnValue具有值”
而returnValue.Read()是
scriptErrorBase=scriptErrorBase+“读取返回值”
Dim参数值为String=String.Empty
'简单报表不需要应用程序名称,因此如果该值有值,则该值可能为空
'这是CSMRoot-请参阅下一个查询。
如果NotReturnValue(“ParameterValue”)为Nothing,则
paramValue=returnValue(“ParameterValue”).ToString()
其他的
scriptErrorBase=scriptErrorBase+“返回值'ParameterValue'为空”
如果结束
scriptErrorBase=scriptErrorBase+“从returnValue分配的paramValue”
如果不是String.IsNullOrEmpty(paramValue),则
results.Append(参数值)
如果结束
结束时
如果结束
特例
抛出新异常(String.Format(“{0}{1}{2}”,scriptErrorBase,myQuery,ex))
结束尝试
如果没有结果,那就什么都不是了
targetApp=results.ToString()
如果结束
如果不是String.IsNullOrEmpty(targetApp),则
'简单报告的参数名引用