0

以下は私のロジックです (データベースにデータ行を追加します)。このロジックは機能しますが、 の文字列の長さが 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();
4

1 に答える 1