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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值