以下是我的逻辑(将一行数据添加到数据库中)。这个逻辑有效,但是当我的字符串长度大于 4000 个字符时log.Value.Message
,它会在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='[MY HUGE STRING FULL OF THE ENTIRE LOREM IPSUM TEXT, A LENGTH OF 6850]'。
这就是我创建数据库的方式:
SqlCeEngine engine = new SqlCeEngine(ConnectionString);
engine.CreateDatabase();