【发布时间】:2012-07-06 15:27:27
【问题描述】:
windows phone中SQL Server CE中超过4000个字符的NTEXT
我的 Windows Phone 应用程序中有一个数据库,其中一个表中有一个 ntext 字段,我正在尝试向该字段写入一些内容,但我收到一个带有消息的 InvalidOperationException:
字符串截断:max=4000, len=4621
我正在尝试使用 ntext,因为我知道 nvarchar 不接受超过 4000 个字符。
我已经搜索了解决方案,但找不到任何解决方案。
我发现我无法在 windows phone 上使用的唯一解决方案,因为它使用 SqlConnection 和 SqlCommand 和 SqlDbType。
以下是列的声明方式:
private string _content;
[Column(DbType="ntext")]
public string Content
{
get
{
return _content;
}
set
{
if (value != _content)
{
_content = value;
NotifyChange(o => o.Content);
}
}
}
我将其插入:
cn.Articles.InsertAllOnSubmit(articlesToSave);
cn.SubmitChanges();
有人知道解决方法吗?
提前感谢您的回答!
【问题讨论】:
-
CE不支持
nvarchar(max)吗?如果是这样,那是比ntext更好的选择。 -
不,不支持,至少windows phone不支持,它只接受nvarchar(4000)作为最大长度。
-
那么我怀疑它也会在 4000 字节处截断 ntext。
-
是的,这就是我遇到的问题,它将 ntext 截断为 4000 字节。
-
那么您可能需要将文本拆分并使用两个变量。
标签: c# windows-phone-7 sql-server-ce ntext