0

我是使用水晶报表和 C# 创建报表的新手。我创建了显示客户津贴的 ac# 程序。我现在唯一的问题是一个字段没有显示我想要的内容。我的 sql 中有一个具有“varchar”数据类型的表,因为我希望它显示带有文本的数字。我的问题是,当一个值有千位分隔符时,它不会放逗号。我想要的是将我的值显示为25,000/day而不是25000/day。有可能做到这一点吗?我应该使用什么数据类型?

4

3 回答 3

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]);
于 2012-07-30T03:34:51.497 回答
0

不能将其存储为小数并在显示时使用ToString进行格式化

string display = value.ToString("N") + "/day";

仅存储小数将占用更少的空间,如果您需要,您可以稍后轻松地在该字段上进行计算

于 2012-07-30T03:30:38.173 回答
0

尝试使用 string.Format() 方法对其进行格式化。

string disp = String.Format( "{ 0:C}", Convert.ToInt32(value.split(@"/")[0])) + @"/" + value.split(@"/")[1];

其中 value 是您需要显示的值(即“25000/天”)

HTH。

于 2012-07-30T03:39:01.067 回答