2 つのクエリがあります。
Q1: select name from presidents where country = 'USA'
Q2: select 'Obama' as name from presidents where country = 'USA'
使用すると、Q1 の場合と Q2 の場合にSystem.Data.Odbc.OdbcCommandExecuteReader
返されるDbDataReader
内容が含まれます。'Obama'
'Obama '
Q2 の場合、文字列の末尾にスペースが埋め込まれているのはなぜですか? また、その解決策は何ですか?
トリミングは醜く、場合によっては間違っています。.Net Framework 3.5 を使用しています。
ここにテストコードがあります
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = (OdbcConnection)DatabaseContext.Connection;
cmd.CommandText = "select 'Obama' from dual";
cmd.CommandType = CommandType.Text;
OdbcDataReader r = cmd.ExecuteReader();
if (r.Read())
{
String s = r.GetString(0);
// s now contains "Obama "
// with trailing spaces
}