当试图向SQL Server CE数据库插入超过4000个字符的字符串时,出现InvalidOperationExcep



下面是我的逻辑(它向数据库添加了一行数据)。这个逻辑是有效的,但是当log.Value.Message的字符串长度大于4000个字符时,它在rs.Insert上失败了。为什么呢?我怎么才能避开这个问题呢?我试着在网上搜索,但我找不到关于这个的任何东西。连接字符串看起来像这样:

Data Source=C:\File.sdf;Max Database Size=4000;Password=password;
代码:

SqlCeConnection conn = new SqlCeConnection(ConnectionString);
SqlCeCommand cmd = new SqlCeCommand();
SqlCeResultSet rs;
SqlCeUpdatableRecord rec;
conn.Open();
cmd.Connection = conn;
cmd.CommandText = "LogRecords";  // Table name.
cmd.CommandType = CommandType.TableDirect;
rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable);
rec = rs.CreateRecord();
foreach (KeyValuePair<UInt64,LogRecord> log in v)
{
    rec.SetGuid(0, log.Value.ID);
    rec.SetSqlString(4, log.Value.Message);
    rs.Insert(rec);
}

这是我看到的例外:

字符串截断:max=4000, len=6850, value='我的包含整个LOREM IPSUM文本的大字符串,长度为6850 '.

这是我如何创建我的数据库:

SqlCeEngine engine = new SqlCeEngine(ConnectionString);
engine.CreateDatabase();

我想通了,需要设置typename,即:[Column(typename =" ntext")] public string Body {get;设置;}

最新更新