- - PR -
DataGridの列に数値データをカンマ編集して表示する方法
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-04-25 17:24
お世話さまです。
今回はSQL-Server寄りの話になりそうなのでココに書くべきかどうか迷ったのですが、 他に適当な部屋も見つからなかったので通い慣れたココに書かせて頂きます。^^; DataGridの1つの列にDBの2つのフィールドを連結させて表示させている (一方がvarchar属性の文字列フィールドでもう一方がint属性の数値フィールド) のですが、この数値フィールドをカンマ編集してグリッド上に表示させる方法を 教えて頂きたいのです。 カンマ編集するSQLコマンドを探してみたのですが、見つけることが できませんでした。(FORMATコマンドみたいなのとかないんですね。^^;) で、仕方がないので、現状では下記のようなデータ列を単純に文字列として 連結表示させています。 Fee_Name varchar(20)…料金名称 Fee int…料金 SELECT Fee_Name + CAST(Fee AS CHAR(7)) AS 料金 FROM TABLE DataGridの列書式側で編集するワケにもゆかないので、なんとかSQLコマンドで この料金(Fee)の部分をカンマ編集したいのですが… 何かよい方法はないでしょうか? | ||||||||
|
投稿日時: 2003-04-25 19:41
@バインドする前にデータソースを編集する
AItemDataBound イベントでセルの内容を編集する のどちらかで実現できると思います。 もちろんSQL文で処理してもいいんですが。 | ||||||||
|
投稿日時: 2003-04-25 23:01
===>ぼると様
早速のレス、ありがとうございます。 申し遅れましたが、言語はASP.VBです。 >もちろんSQL文で処理してもいいんですが。 できればSQL文で処理してしまいたいので、 お手数ですがカンマ編集を実装したコマンドの例を ご教示頂けないでしょうか? | ||||||||
|
投稿日時: 2003-04-26 15:03
Aストアドファンクションを作成する のどちらかでしょうか。 @は面倒なのでサンプル作る気になれません。 Aのサンプルを作ってみましたが、ストアドファンクションは 初めて作ったのでこのまま使うのはやめた方がいいかもしれません。
| ||||||||
|
投稿日時: 2003-04-26 16:16
===>ぼると様
お世話さまです&お手数をおかけしました。 具体的なサンプル提示、誠にありがとうございます。 ストアドファンクション…プロシジャ以外にも そんなのまで作ることができたんですね!?>SQL@0@ 今、一見しただけでは何をやっているのか理解 出来そうもありませんので、明日以降、会社で じっくり解析させて下さい。^^; 既存の関数や単一コマンドレベルでは実装できない ということが判ったダケでも収穫です。 ありがとうございました。 | ||||||||
|
投稿日時: 2003-04-28 15:16
こんにちは。
SQL Server では、CONVERT というのがありますけど... money型に対して style 値の指定で、3桁ごとにカンマを挿入する/しないを 指定できるみたいですよ。 | ||||||||
|
投稿日時: 2003-04-28 16:05
===>Qoo様
こんにちは! またまたまたお世話さまです。 styleパラメータをヒントに下記のようなSQL文を作って みましたところ、数値部である料金のカンマ編集が出来ました。^^; SELECT REPLACE(CONVERT(VARCHAR, CAST(Fee AS MONEY), 1),'0.00','0') FROM TABLE CONVERTコマンドでmoney属性のフィールドをstyle=1で編集すると0.00 という具合に小数部まで表示されてしまいますので、REPLACEコマンドで 強制的に0に変換してやりました。(笑) アドバイスありがとうございました。 ぼるとさんのにもトライしてみるツモリです。 | ||||||||
|
投稿日時: 2003-04-28 17:32
自己レスです。
SELECT REPLACE(CONVERT(VARCHAR, CAST(Fee AS MONEY), 1),'.00','') FROM TABLE にしないと1の位の値が0でない場合に小数点がついたままに なってしまいます。^^; |