我正在尝试根据来自SqlDataReader的结果形成表的文本表示。
while (unitsRdr.Read())
{
note.AppendFormat("{0,-15}", String.Format("{0}({1})", unitsRdr.GetValue(0), unitsRdr.GetValue(1)));
}
现在我期望发生的是我应该得到4组物品,右边的填充物等于15.这样的
BP(mm\Hg) HR(bpm) RR(rpm) Sa O2(%) |<-- this would be the end of the string.
然而,我得到的是
BP(mm\Hg )HR(bpm )RR(rpm )Sa O2(% )|<-- this is the end of the string.
似乎在(
之后开始计数,)
放在空格数之后。
进行格式化的正确方法是什么,所以文本就像我的第一个例子?
对于任何想要它的人来说,这是源表
desc unit
------------ ----------
BP mm\Hg
HR bpm
RR rpm
Sa O2 %
答案 0 :(得分:2)
我强烈怀疑问题是unitsRdr.GetValue(1)
返回的值实际上比你想象的要长。我非常怀疑string.Format
正在这样做。请尝试使用unitsRdr.GetValue(1).Trim()
代替 - 或者只使用硬编码的文字值进行测试。