以下は私のロジックです (データベースにデータ行を追加します)。このロジックは機能しますが、 の文字列の長さが 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);
}
これは私が見る例外です:
文字列の切り捨て: 最大 = 4000、長さ = 6850、値 = '[LOREM IPSUM テキスト全体でいっぱいの私の巨大な文字列、6850 の長さ]'.
これが私のデータベースの作成方法です:
SqlCeEngine engine = new SqlCeEngine(ConnectionString);
engine.CreateDatabase();