Text として定義されたデータベースのデータ型があります。
テキスト列は、最大 2,147,483,647 (2 31 - 1) バイトの印刷可能文字を保持できる可変長の列です。
それは正確にはどういう意味ですか?テキスト列に保存できる文字列の文字数は?
基本的に、ac# 文字列オブジェクトをその列に保存しようとします。
myString.ToString().Length == 39418
しかし、データベースから引き戻すと
myString.ToString().Length == 32768
-----------編集済み---------------
皆さん、これは非常に紛らわしいです。
Text 列は 2GB である 2,147,483,647 バイトとして定義されています。
保存しようとしている文字列は ?System.Text.ASCIIEncoding.Unicode.GetByteCount(param.Value.ToString()) 78836 バイト、つまり 0.0000734217 ギガバイトです。
それで、私が保存しようとしているものが Text データ型列には大きすぎないことが確認されましたか? つまり、2GB を処理できる列に 0.0000734217 GB を保存しています。
私はサイベースを使用しています。次のように保存します。
OdbcParameter param = new OdbcParameter();
param.DbType = DbType.String;
param.Size = int.MaxValue;
param.Value = myBigString
parameters.Add(param);
OdbcHelper.ExecuteNonQuery(connectionString, sql, parameters);
そして、このように取得します
DataSet ds = new DataSet();
OdbcConnection conn = new OdbcConnection(connectionString);
OdbcDataAdapter adp = new OdbcDataAdapter(command, conn);
conn.Open();
adp.Fill(ds);....
また、これを試してみると、データが切り捨てられていることがまだわかるので、データを取得するときに問題のようには見えません
var obj = OdbcHelper.ExecuteScalar(connectionString, "select myBigString FROM ...");