1
我有兩個疑問:爲什麼ExecuteReader()填充帶空格的字符串?
Q1: select name from presidents where country = 'USA'
Q2: select 'Obama' as name from presidents where country = 'USA'
當使用System.Data.Odbc.OdbcCommandExecuteReader
則返回DbDataReader
包含在Q1的情況下'Obama'
和'Obama '
在Q2的情況下。
爲什麼在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
}
事實上'從'dual'選擇'x'與從'dual'選擇trim('x')不一樣 –