- PR -

DataGridで表示内容を修正することは可能か?

1
投稿者投稿内容
Tom
常連さん
会議室デビュー日: 2004/06/07
投稿数: 23
お住まい・勤務地: 東京都
投稿日時: 2004-07-30 09:48
最近VB.NETを始めた者です。

上記の件なのですがVB.NETを使ってDBのテーブルのデータを
データグリッドを使って表示させていますが
データを編集して内容を表示させることは可能でしょうか?
やりたいことは例えば
・性別を表すカラムのデータが1なら男2なら女と表示する。
・日付のカラムを和暦にして表示。
で表示されたデータを修正した場合、例えば
・性別を表すカラムのデータを男→女に変更して更新すると
1 → 2 とテーブルは更新されている。
・平成16年07月30日と入力したら2004-07-30でINSERTされる。
みたいなことです。

参考になるサイトもしくは書籍をお教えくださるだけでもかまわないので
どなたかご教授ねがいませんでしょうか?

じいじ
大ベテラン
会議室デビュー日: 2003/11/11
投稿数: 223
投稿日時: 2004-07-30 09:52
まずは自分で検索を・・・・
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-07-30 10:39
.NET TIPSや、
Insider.NETに掲載されている記事は読んでおいた方が良いかと。

あとは、会議室の過去ログか会議室ディレクトリで同じような質問が
なかったか調べてみては如何でしょうか?

#WindowsアプリケーションかWebアプリケーション等の開発環境も明記しておくと良いです。

#追記:いちようMSDNも。
_________________
雑談のNUSHI

[ メッセージ編集済み 編集者: まゆりん 編集日時 2004-07-30 11:11 ]
Tom
常連さん
会議室デビュー日: 2004/06/07
投稿数: 23
お住まい・勤務地: 東京都
投稿日時: 2004-07-30 12:53
引用:
まずは自分で検索を・・・・


調べてから聞いているんですけど・・・
引用:
#WindowsアプリケーションかWebアプリケーション等の開発環境も明記しておくと良いです。


すいません、VB.NETのWindowsアプリケーションです。(勉強しているだけなので)

で今のところ試しているのがDataGridTextBoxColumnを継承して
自作クラスを作っているのですが結果は駄目ですね。

たとえば日付だと
コード:
Public Class DataGridWarekiColumn
    Inherits DataGridTextBoxColumn
    
    Protected Overloads Overrides Sub Paint( _
        ByVal g As System.Drawing.Graphics, _
        ByVal bounds As System.Drawing.Rectangle, _
        ByVal source As System.Windows.Forms.CurrencyManager, _
        ByVal rowNum As Integer, _
        ByVal backBrush As System.Drawing.Brush, _
        ByVal foreBrush As System.Drawing.Brush, _
        ByVal alignToRight As Boolean)

        Dim cellValue As Object = Me.GetColumnValueAtRow(source, rowNum)

        If Not cellValue Is Nothing Then
             'テストなのでとりあえずこれで
             Me.SetColumnValueAtRow(source, rowNum, "平成16年07月30日")
        End If

        MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush,_
             alignToRight)
    End Sub
End Class



でFormでこのカラムの宣言と初期化しているところ(普通は隠蔽されている個所)
を下記のように書き換え

Friend WithEvents DataColumn As DataGridWarekiColumn
DataColumn = New DataGridWarekiColumn

で結果としては
日付は読み込む以前から2004/07/30と表記される。
DBを読み込むと
「ListManager の位置は rowNum と同じでなければなりません。」
とエラーがでる。(何の意味だかさっぱり・・・)

で数値のところを文字列にかえるのも
テーブルのデータ型が違うのでエラーになりました。
たとえば数値型の性別を表すカラムに
Me.SetColumnValueAtRow(source, rowNum, "男")
と自作クラスのメソッドを作った場合。

と今のところ分かっているのはできないことだけですね。
1

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