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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...