- PR -

DataGridに関して

投稿者投稿内容
JT
常連さん
会議室デビュー日: 2005/10/20
投稿数: 27
投稿日時: 2007-01-16 13:24
久しぶりの投稿です。
下記の内容で悩んでいます。アドバイス頂ければ幸いです。
現在、Aテーブルから引っ張ってきているデータをDataGridに表示させているのですが、
User側からの要望でテーブルの内容はそのまま、DataGridに表示するときは
小数を切り捨てでデータを表示させてほしいと要望がありました。
(例)
在庫数
1234.567⇒1234
2345.6789⇒2345

テーブルデータが小数まで表示されているのに
DataGridに表示するときには小数を切り捨てて表示するのは可能でしょうか?

以下のプログラムは現在DataGridに表示させる為にかいているものです。
'DataGridデザイン変更
Me.DataGrid.RowHeaderWidth = 10
Me.DataGrid.ReadOnly = True

'DataGridスタイル設定
tblStyle = New DataGridTableStyle
tblStyle.MappingName = "get"
Me.DataGrid.TableStyles.Add(tblStyle)
For intRow = 0 To 7
clmStyle(intRow) = New DataGridTextBoxColumn
Next
clmStyle(0).HeaderText = "AAA"
clmStyle(0).MappingName = "AAA"
clmStyle(0).Width = "80"
clmStyle(1).HeaderText = "BBB"
clmStyle(1).MappingName = "BBB"
clmStyle(1).Width = "180"
clmStyle(2).HeaderText = "CCC"
clmStyle(2).MappingName = "CCC"
clmStyle(2).Width = "180"
clmStyle(3).HeaderText = "DDD"
clmStyle(3).MappingName = "DDD"
clmStyle(3).Width = "60"
clmStyle(4).HeaderText = "EEE"
clmStyle(4).MappingName = "EEE"
clmStyle(4).Width = "60"
clmStyle(5).HeaderText = "在庫数"
clmStyle(5).MappingName = "在庫数"
clmStyle(5).Width = "60"
clmStyle(6).HeaderText = "GGG"
clmStyle(6).MappingName = "GGG"
clmStyle(6).Width = "60"
clmStyle(7).HeaderText = "HHH"
clmStyle(7).MappingName = "HHH"
clmStyle(7).Width = "120"

For intRow = 0 To 7
tblStyle.GridColumnStyles.Add(clmStyle(intRow))
Next
:
:
:
:

sqldata = "SELECT A,AAA,A.BBB,A.CCC,B.DDD,B.EEE,A.在庫数,B.GGG,A.HHH FROM TBL_××× A,MST_△△△ B " & _
"WHERE A.AAA = B.AAA " & _
"AND A.AAA Like '" & Me.TextAAA.Text & "%' " & _
"AND A.BBB Like '" & Me.TextBBB.Text & "%' " & _
"AND B.DDD Like '" & Me.TextDDD.Text & "%' " & _
"AND B.EEE Like '" & Me.TextEEE.Text & "%' " & _
"ORDER BY AAA"
Me.DataGrid.SetDataBinding(oraobj.ora_reader(sqldata, "get").Tables("get").DataSet, "get")
Me.TextSerchResult.Text = oraobj.ora_reader(sqldata, "get").Tables("get").Rows.Count
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-01-16 14:20
DB が何か分かりませんが、SELECT 時に切り捨てればいいのではないですか?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-01-16 14:38
引用:

ひろれいさんの書き込み (2007-01-16 14:20) より:

DB が何か分かりませんが、SELECT 時に切り捨てればいいのではないですか?


ora_reader という単語があるので、oracle のようですね。
# いつの間にかぬしになっているひろれいさんの人気に嫉妬。

他にも明記されていませんが、DataGrid とあるので Webアプリケーションでいいんですよね?

やり方としては、ひろれいさんが書かれた SELECT 時に切り捨てる方法もありますし、
ItemDataBound イベントを捕まえてゴリゴリするという方法もあります。
一般的には前者が使われるかもですね。もっと複雑な場合は後者もやりますが。

あとは SQL はパラメータクエリにした方がよろしいかと。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
JT
常連さん
会議室デビュー日: 2005/10/20
投稿数: 27
投稿日時: 2007-01-16 14:39
DB:Oracleです!
JT
常連さん
会議室デビュー日: 2005/10/20
投稿数: 27
投稿日時: 2007-01-16 14:47
開発環境として…Visual Studio.Net2003を利用しています。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-16 15:50
引用:

ぽぴ王子さんの書き込み (2007-01-16 14:38) より:

他にも明記されていませんが、DataGrid とあるので Webアプリケーションでいいんですよね?


DataGrid クラスは、Windows.Forms 名前空間にもあります。

そのセリフは、GridView クラスだった時に使いましょう。
(Windows Form では、DataGridView クラスになります)

引用:

やり方としては、ひろれいさんが書かれた SELECT 時に切り捨てる方法もありますし、ItemDataBound イベントを捕まえてゴリゴリするという方法もあります。
一般的には前者が使われるかもですね。もっと複雑な場合は後者もやりますが。


データの件数を考慮すると、前者が良いです。
もっと複雑な場合は、ストアド プロシージャ + DataSet が好きです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-01-16 16:14
引用:

じゃんぬねっとさんの書き込み (2007-01-16 15:50) より:

そのセリフは、GridView クラスだった時に使いましょう。
(Windows Form では、DataGridView クラスになります)


おーおーおー(額をペシッと叩き)赤外線が出とるじゃないか。
…じゃなかった、フォローありがとうございます。
そうですね。GridView と DataGrid を混同してました。
VisualStudio .NET 2003 ということは .NET Framework 1.1 なので、
DataGridView はなくて DataGrid しかないんですよね。
(全部最初に書いておいてくれよ、という話ではありますが)

引用:

データの件数を考慮すると、前者が良いです。
もっと複雑な場合は、ストアド プロシージャ + DataSet が好きです。


ですね。
切捨て程度の処理だったら前者の方がいいと思います。
ストアドプロシージャは…個人的には保留で。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2007-01-16 17:37
NAL-6295です。

DataGridTextBoxColumnを利用しているので、たぶんWindowsFormsだと思いますが、
DataGridTextBoxColumnのFormatプロパティに表示させたい書式を設定してはいかがでしょうか?

スキルアップ/キャリアアップ(JOB@IT)