如果发送到SqlCommand.ExecuteNonQuery的字符串太长怎么办?

时间:2014-04-21 22:04:25

标签: c#

我创建的用于插入表的字符串大约有2,070个字符,我认为这就是我将它发送到ExecuteNonQuery时出现此错误的原因:传入的表格数据流(TDS)远程过程调用(RPC) )协议流不正确。 RPC名称无效。

如果我将调试器中的字符串复制/粘贴到sql server management studio并运行,它将正确插入。这就是我认为它是字符串长度的原因。

我的问题:有没有办法运行这个插入语句?有77个值,因此存储过程需要接受所有这些参数,并且参数可能并不总是以相同的顺序。

我总是可以将Insert语句作为字符串参数发送到只执行动态sql的通用存储过程,但我倾向于完全避免使用动态sql。

感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分:6)

这是我的错误。

执行ExecuteNonQuery的方法也有我没有指定的commandType参数。所以默认情况下它会将文本作为CommandType.StoredProcedure运行。