zoukankan      html  css  js  c++  java
  • 一个参数化更新语句传入类型错误问题

    今天发现了一个很怪的错误提示,经过检查,发现主要原因是因为一个字段在存储xml时过长引起的。数据库使用varchar(max)

    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 

    sqlPara[paraindex] = new SqlParameter();
    sqlPara[paraindex].ParameterName = "@BeiZhu";
    sqlPara[paraindex].SqlDbType = SqlDbType.Varchar;
    sqlPara[paraindex].Direction = ParameterDirection.Input;
    sqlPara[paraindex].Value = p_model.TiaoJianZiDuan;
    paraindex++;

    注意红色部分,如果使用SqlDbType.Varchar,会最多只允许写入4000个中文字符而报错(注意这个时候不是报截断错误)

    如果想用

    SqlDbType.Varchar

    可以增加下面代码解决问题

    sqlPara[paraindex].Size = -1;

     另外直接使用

    SqlDbType.Text

    也可以,


    SqlDbType与DbType的转换关系
    SqlDbType => DbType
    SqlDbType.BigInt DbType.Int64
    SqlDbType.Binary DbType.Binary
    SqlDbType.Bit DbType.Boolean
    SqlDbType.Char DbType.AnsiStringFixedLength
    SqlDbType.DateTime DbType.DateTime
    SqlDbType.Decimal DbType.Decimal
    SqlDbType.Float DbType.Double
    SqlDbType.Image DbType.Binary
    SqlDbType.Int DbType.Int32
    SqlDbType.Money DbType.Currency
    SqlDbType.NChar DbType.StringFixedLength
    SqlDbType.NText DbType.String
    SqlDbType.NVarChar DbType.String
    SqlDbType.Real DbType.Single
    SqlDbType.UniqueIdentifier DbType.Guid
    SqlDbType.SmallDateTime DbType.DateTime
    SqlDbType.SmallInt DbType.Int16
    SqlDbType.SmallMoney DbType.Currency
    SqlDbType.Text DbType.AnsiString
    SqlDbType.Timestamp DbType.Binary
    SqlDbType.TinyInt DbType.Byte
    SqlDbType.VarBinary DbType.Binary
    SqlDbType.VarChar DbType.AnsiString
    SqlDbType.Variant DbType.Object
    SqlDbType.Xml DbType.Xml
    SqlDbType.Udt DbType.Object
    SqlDbType.Structured DbType.Object
    SqlDbType.Date DbType.Date
    SqlDbType.Time DbType.Time
    SqlDbType.DateTime2 DbType.DateTime2
    SqlDbType.DateTimeOffset DbType.DateTimeOffset


    DbType => SqlDbType
    DbType.AnsiString SqlDbType.VarChar
    DbType.Binary SqlDbType.VarBinary
    DbType.Byte SqlDbType.TinyInt
    DbType.Boolean SqlDbType.Bit
    DbType.Currency SqlDbType.Money
    DbType.Date SqlDbType.DateTime
    DbType.DateTime SqlDbType.DateTime
    DbType.Decimal SqlDbType.Decimal
    DbType.Double SqlDbType.Float
    DbType.Guid SqlDbType.UniqueIdentifier
    DbType.Int16 SqlDbType.SmallInt
    DbType.Int32 SqlDbType.Int
    DbType.Int64 SqlDbType.BigInt
    DbType.Object SqlDbType.Variant
    DbType.SByte (抛异常)
    DbType.Single SqlDbType.Real
    DbType.String SqlDbType.NVarChar
    DbType.Time SqlDbType.DateTime
    DbType.UInt16 (抛异常)
    DbType.UInt32 (抛异常)
    DbType.UInt64 (抛异常)
    DbType.VarNumeric (抛异常)
    DbType.AnsiStringFixedLength SqlDbType.Char
    DbType.StringFixedLen

  • 相关阅读:
    25.大白话说java并发工具类-CountDownLatch,CyclicBarrier,Semaphore,Exchanger
    23.FutureTask基本操作总结
    22.线程池之ScheduledThreadPoolExecutor
    Jenkins + SVN搭建php持续集成
    Django学习系列之Form表单结合ajax
    Django学习系列之模板系统
    Django学习系列之路由系统
    zabbix学习系列之基础概念
    Python学习系列之反射
    Django学习系列之模板
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/12611037.html
Copyright © 2011-2022 走看看