今天在信息发布功能时出现了一个怪异的错误(时而出错,时而不会):

System.Data.SqlClient.SqlException: 当前命令发生了严重错误。应放弃任何可能产生的结果。

>>具体的错误提示如下所示:

System.Data.SqlClient.SqlException: 当前命令发生了严重错误。应放弃任何可能产生的结果。
当前命令发生了严重错误。应放弃任何可能产生的结果。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command)
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command)
在 Core.DAL.Article.Update(Article model) 位置 E:\Works\Portal\Core\DAL\Article.cs:行号
在 Core.BLL.Article.Update(Article model) 位置 E:\Works\Portal\Core\BLL\Article.cs:行号
在 LWDocService.Portal.Admin.ArticleEdit.btnSubmit_Click(Object sender, EventArgs e) 位置 E:\Works\Portal\Admin\ArticleEdit.aspx.cs:行号
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

>>具体经验判断应该是字段长度的问题,但经网上搜索有些说是没有安装SQL Server 2000 SP1补丁导致的,属于SQL Server的一个bug,但我将数据库附加到MS SQL Server 2005然后再运行时还是出现错误了,而这次的错误提示却与SQL Server 2000不同:

System.Data.SqlClient.SqlException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 15 ("@Content"): 数据类型 0xA7 的数据长度或元数据长度无效。

>>从错误的提示上看应该可以比较直观地判断出是字段Content的长度问题,而为什么SQL Server 2000与SQL Server 2005不同的数据库版本竟会有不同的错误提示呢?大家有兴趣或知道的,请告知 :),在这里老林只想解决出现的问题.....

>>好了,知道问题的根源解决就不困难了,

原来的代码:

db.AddInParameter(dbCommand, "Content", DbType.AnsiString, model.Content);

改为现在的代码:

 db.AddInParameter(dbCommand, "Content", DbType.String, model.Content);

>>那么DbType.AnsiString与DbType.String有任何区别呢?

经查MSDN资料,https://msdn.microsoft.com/zh-cn/library/system.data.dbtype%28VS.80%29.aspx?f=255&MSPPError=-2147217396:

AnsiString——非 Unicode 字符的可变长度流,范围在 1 到 8,000 个字符之间。

String——表示 Unicode 字符串的类型。

>>大家看到了吗?AnsiString最大的范围是在8000个字符之内,如果你的文章内容太多那将可能出错误。

原文链接:SqlException 当前命令发生了严重错误 应放弃任何可能产生的结果

>>小广告:八爪鱼招标网 大家多给意见哦

SqlException 当前命令发生了严重错误 应放弃任何可能产生的结果的更多相关文章

  1. atitit.故障排除--- 当前命令发生了严重错误。应放弃任何可能产生的结果sql server 2008

    atitit.故障排除--- 当前命令发生了严重错误.应放弃任何可能产生的结果sql server 2008 1. 现象 1 2. 原因:::sql server的bug 或者限制,查询的时候儿使用资 ...

  2. mysql 在windows下,使用 net start mysql 命令发生错误 服务名无效 或 1067

    mysql 在windows下,使用 net start mysql 命令发生错误 :服务名无效 或 1067  先使用mysqld -install安装一下 删除data目录下的日志等文件(因为之前 ...

  3. SQL Server 更新统计信息出现严重错误,应放弃任何可能产生的结果

      一台SQL Server 2008 R2版本(具体版本如下所示)的数据库,最近几天更新统计信息的作业出错,错误如下所示: Microsoft SQL Server 2008 R2 (SP2) - ...

  4. jps命令发生异常

    当在集群里输入jps命令时报如下错误: 我就开始检查jdk,感觉应该是centos自动的jdk没卸载干净跟后面安装的jdk冲突 先通过命令 rpm -qa|grep java 查看jdk信息 把这几个 ...

  5. net start命令发生系统错误5和错误1058的解决方法

    net start命令用于开启服务,格式为:net start [服务名](与之对应的"net stop [服务名]"为关闭服务命令) 5是没有管理员权限,右键管理员即可 1058 ...

  6. 非常老的话题 SQLSERVER连接池

    原文:非常老的话题 SQLSERVER连接池 非常老的话题 SQLSERVER连接池 写这篇文章不是说要炒冷饭,因为园子里有非常非常多关于SQLSERVER连接池的文章,但是他们说的都是引用MSDN里 ...

  7. 抱歉!15:44-16:39阿里云RDS故障造成全站不能正常访问

    非常非常抱歉!2016年3月7日15:44-16:39,由于阿里云RDS(云数据库)故障,造成全站不能正常访问,给您带来了很大很大的麻烦,恳请您的谅解! 故障是在15:44开始出现的,应用日志中出现大 ...

  8. SQL SERVER 2000通过链接服务器发送邮件出现错误

    案例环境: 服务器A系统: Windows Server 2000 数据库版本 : Microsoft SQL Server  2000 - 8.00.2282 (Intel X86) 服务器B系统: ...

  9. atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc

    atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc ...

随机推荐

  1. c# 实现简单的socket通信

    服务端 using System.Net.Sockets; using System.Net; using System.Threading; namespace SocketServer { cla ...

  2. spring源码分析之cache demo

    spring提供了对echache.guava.jcache的支持,先看一个echache的示例: import org.springframework.cache.CacheManager; imp ...

  3. 【解决】查询无法完成,因为其包含的查找列数已超过管理员强制实施的查找列阈值。Error code=0x80070093; Error source=Groove

    前因: 修改了SharePoint Server 2013 下面的文档库的名称,原先2个汉字,现在8个汉字.结果,SkyDrive Pro 就无法同步了,无论是停止重新同步还是手动填写进行同步都不可以 ...

  4. ZOJ Problem Set - 1216 Deck

    #include <stdio.h> int main() { ]; double t=2.0; table[]=0.5; ;i<;i++) { t+=; table[i]=tabl ...

  5. 1Z0-053 争议题目解析697

    1Z0-053 争议题目解析697 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 697.Which statement is true about a Scheduler-gen ...

  6. 放养的小爬虫--京东定向爬虫(AJAX获取价格数据)

    放养的小爬虫--京东定向爬虫(AJAX获取价格数据) 笔者声明:只用于学习交流,不用于其他途径.源代码已上传github.githu地址:https://github.com/Erma-Wang/Sp ...

  7. c#中字段和属性的区别

    在我看来(本人是C#初学者)字段实际上类似一个变量,或者就直接说字段就是一个变量.相应的属性也可以看做是一个变量,只不过多了一些限制而已. using System;using System.Coll ...

  8. clientTarget与用户代理别名

    将特定用户代理的别名添加到用户代理别名的内部集合中. 来自 <https://msdn.microsoft.com/zh-cn/library/6379d90d(v=vs.110).aspx&g ...

  9. jQuery省市区三级联动插件

    体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...

  10. jQuery页面滚动右侧浮动导航切换

    体验效果:http://hovertree.com/texiao/jquery/49/ 效果图: 代码如下: <!DOCTYPE html> <html> <head&g ...