0

Crystal Reports と C# を使用してレポートを作成するのは初めてです。クライアントの手当を表示する ac# プログラムを作成しました。今のところ唯一の問題は、フィールドに必要な情報が表示されないことです。テキスト付きの数値を表示したいので、「varchar」データ型を持つテーブルが sql にあります。私の問題は、値に千の区切り記号がある場合にコンマを入れないことです。私が望むのは、値を 25000/day ではなく 25,000/day として表示することです。これまで可能ですか?どのデータ型を使用すればよいですか?

4

3 に答える 3

2

There is no data type supporting your requirement in SQL Server.

A better approach would be to use decimal for your numbers and a separate column for your text part i.e. /day. This will help you run queries requiring averages, minimum, maximum on the decimal field. Later you can format it in C# for your reports.

But if you can't change the database then you may split the string in c# based on character "/" and then you may use ToString() for formatting the number with commas. Something on the following lines:

    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

string.Format() メソッドを使用してフォーマットしてみてください。

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

ここで、値は表示する必要がある値です (つまり、「25000/日」)

HTH。

于 2012-07-30T03:39:01.067 に答える
0

ToStringを使用して、10 進数として保存し、表示するときに書式設定を行うことはできませんか

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

小数だけを保存するとスペースが少なくて済み、必要に応じて後でフィールドで簡単に計算を行うことができます

于 2012-07-30T03:30:38.173 に答える