我是使用水晶报告和c#创建报告的新手。我创建了一个显示客户端容量的c#程序。我现在唯一的问题是字段没有显示我想要的内容。我的sql中有一个表有'varchar'数据类型,因为我希望它显示带有文本的数字。我的问题是,当一个值有一千个分隔符时,它不会输入逗号。我想要的是将我的值显示为 25,000 /天而不是 25000 /天。这有可能吗?我应该使用什么数据类型?
答案 0 :(得分:2)
在SQL Server中没有支持您的要求的数据类型。
更好的方法是将decimal
用于您的数字,并为文本部分使用单独的列,即/day
。这将帮助您运行需要十进制字段上的平均值,最小值,最大值的查询。稍后您可以使用C#格式化报告。
但是如果您无法更改数据库,那么您可以根据字符“/”拆分c#中的字符串,然后您可以使用ToString()以逗号格式化数字。以下几行:
string str = "25000/day";
string[] tempArray = str.Split('/');
double number = 0;
if(double.TryParse(tempArray[0],out number))
{
Console.WriteLine("Invalid Number");
}
Console.WriteLine(number.ToString("###,###.#######") + "/" + tempArray[1]);
答案 1 :(得分:0)
不能将其存储为小数,并在显示时使用ToString
进行格式化string display = value.ToString("N") + "/day";
只存储十进制将占用更少的空间,如果需要,您也可以稍后在该字段上进行计算
答案 2 :(得分:0)
尝试使用string.Format()方法对其进行格式化。
string disp = String.Format( "{ 0:C}", Convert.ToInt32(value.split(@"/")[0])) + @"/" + value.split(@"/")[1];
其中value是您需要显示的值(即“25000 /天”)
HTH。