微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver 8003系统错误 参数超过2100个异常 的解决

 

 

異常:


System.Data.sqlClient.sqlException: 着信の表形式のデータ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが不適切です。この RPC 要求に指定されたパラメータが多すぎます。最大数は 2100 です。

 

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100 d.

 

 

內送的表格式資料流 (TDS) 遠端程序呼叫 (RPC) 通訊協定資料流不正確。此 RPC 要求中提供了太多參數。最大值為 2100!。

 

红色处:msqlCommand.Parameters的参数超过2100个。用拼文字串来解决就OK

 

    Public Function PFn_ExcuteDB(ByVal strsqlBuilder As StringBuilder,_
                                        Optional ByVal htPara As Hashtable = nothing,_
                                        Optional ByVal intTimeOut As Integer = 0) As Integer
        Dim enumerator As IDictionaryEnumerator

        Try
            ''sql文の存在を判断する
            'If strsqlBuilder Is nothing Then
            '    PFn_ExcuteDB = -1
            '    Exit Function
            'End If

            'sql文を追加する
            msqlCommand.CommandText = strsqlBuilder.ToString()
            msqlCommand.CommandType = CommandType.Text

            'タイムアウト時間を判断する
            If 0 < intTimeOut Then
                '自定義の時間をセットする
                msqlCommand.CommandTimeout = intTimeOut
            Else
                'システムの時間をセットする
                msqlCommand.CommandTimeout = ComVariable.SystemInfo.DBTimeOut
            End If

            '項目の値をセットする
            If Not htPara Is nothing Then
                '臨時オブジェクトを変化する
                enumerator = htPara.GetEnumerator

                '項目をループする
                While enumerator.MoveNext()
                    'sqlの中、変数をセットする
                    If enumerator.Value Is nothing Then
                        msqlCommand.Parameters.AddWithValue("@" & PFn_ToString(enumerator.Key),dbnull.Value)
                    Else
                        msqlCommand.Parameters.AddWithValue("@" & PFn_ToString(enumerator.Key),enumerator.Value)
                    End If
                End While
            End If

            'LOGファイルを出力する
            Call ComMethod.PSb_WriteLOGFile(2,strsqlBuilder,htPara)

            'DBを実行する
            PFn_ExcuteDB = msqlCommand.ExecuteNonQuery()

            'オブジェクトの初期化をセットする
            msqlCommand.CommandText = String.Empty

            '引数を解放する
            msqlCommand.Parameters.Clear()
        Catch ex As Exception
            PFn_ExcuteDB = -1

            '引数を解放する
            msqlCommand.Parameters.Clear()

            'オブジェクトの初期化をセットする
            msqlCommand.CommandText = String.Empty

            ''異常メッセージを表示する            'MsgBox(ex.ToString())            Throw ex        End Try    End Function

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐