跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

  • 0

MONO中sql“传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正


HACK1949

问题

MONO中sql“传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正

5fe55072cf95e.png

在Mono平台运行我的一个ASP.NET程序时,程序 出异常提示:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 4: 参数名无效。

System.Data.SqlClient.SqlException
传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 4: 参数名无效。

Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): Mono SqlClient Data Provider.
Exception stack trace:

说实话MONO的异常远没有.NET的这么详细。在上面信息中,根本未能定位具体的错误信息。因为该代码在windows系统中正常运行,所以本地开发环境无法捕获该异常。

好吧,只能用排除法,最后将错误定位到了一句数据库查询语句上。

SqlParameter[] parameters = {
                    new SqlParameter("@Slug", SqlDbType.VarChar,50)
            };
parameters[0].Value = slug;
SqlHelper.ExecuteReader("sql 语句略。。。", parameters

考虑到当slug为字母时,一切正常,仅当slug为汉字时才抛出异常,果断将 SqlDbType.VarChar 改成 SqlDbType.NVarChar,问题解决。

附:根据博客园某位博主的经验,当类型为text、VarChar(Max)时也报类似的异常时,可将其对应的size值为-1解决。

链接帖子
意见的链接
分享到其他网站

这个问题有0个答案

推荐的帖子

此问题没有答案

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...