解决方法
我为复制当前所选答案中的一些数据而道歉,但我想尝试提供一点澄清.
首先,答案简短:
我对何时使用sqlChars vs sqlString的建议与你的意图有关.如果您不打算修改输入字符串,请使用sqlString.如果需要操作输入,请使用sqlChars.
现在有一些关于我如何到达那里的细节:
我们可以从文档中看到sqlChars是一个类,而sqlString是一个结构.类与结构超出了此响应的范围,但足以说结构的重量更轻.您还可以看到sqlChars是可变的(您可以更改它而无需新的内存分配).我找不到涉及sqlString大小限制的文档,并且使用大于VARCHAR(8000)/ NVARCHAR(4000)的数据和sqlString没有任何问题.如果您遇到问题,请确保您的CLR代码具有MaxByteSize = -1.
以下信息来自SQL Types的MSDN文档.
类
sqlChars is a mutable reference type that wraps a Char array or a sqlString instance.
结构
sqlString – Represents a variable-length stream of characters to be stored in or retrieved from the database. sqlString has a different underlying data structure from its corresponding .NET Framework String data type.