日期:2014-05-19  浏览次数:20349 次

String.Format格式化问题 ??
我要格式化一个字段的值,String.Format(format,Value),这个字段有可能是real/float/moeny/numeric类型,取出来的值是string类型,放到Value里,但格式化的时候没有变化,我想是Value值类型的问题,但我不知道怎么解决.

应该转换Value值的类型,不能是string类型,但我不知道确切的是real/float/moeny/numeric中的哪一个,这个是由用户选择的,请问怎么解决,谢谢.



------解决方案--------------------
那你这样来做啊:

if (datareader[index] is int)
{
int intValue = (int)datareader[index];
}
else if (datareader[index] is decimal)
{
decimal decValue = (decimal)datareader[index];
}
else...

------解决方案--------------------
不可能按原样输出.数据库中字段类型和C#程序中的数据库并不是完全一样.
除非你用办法枚举.

读取数据的时候连表里面的框价信息也读出来.然后人为的去让各个类型对应起来.
比如
oracle数据库的varchar ---> String,date----> DateTime
等等

------解决方案--------------------
string.format(system.Globalization.NumberFormatInfo.InvariantInfo, "{0} ",...);
------解决方案--------------------
不论你用什么格式的string.Format都将会使结果为string类型!