VB.NETでは、VB6で使われていたNullキーワードが廃止された。
代わりに、SYstem.DBNull.Value を使う。
例)
If Obj is System.DBNull.Value Then
' 処理
End If
VB.NETでは、VB6で使われていたNullキーワードが廃止された。
代わりに、SYstem.DBNull.Value を使う。
例)
If Obj is System.DBNull.Value Then
' 処理
End If
データベース:SQL Server
GROUP BY 使用時に、SELECT 内に MAX句を使うとレスポンスが極端に悪くなる。
できるだけGROUP BY 句内に列挙し、SELECT 内では使用しないほうがよい。
(遅い)
SELECT 製番, MAX(分類)
FROM 製番マスタ
GROPU BY 製番
(速い)
SELECT 製番, 分類
FROM 製番マスタ
GROPU BY 製番, 分類
DataGridViewコントロールでセルの値が変更されたらDBを更新する。
Dim glbCellChangeFlag As Boolean ' セルが変更されたフラグ
Form_Load イベントハンドラ
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' DataGridViewにデータを表示する処理
DataGridView1.DataSource = DataSource
' このままではCellValidatedイベントが発生するのでフラグをFalseにする
glbCellChangeFlag = False
End Sub
' CellValueChangedイベントハンドラ
Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellValueChanged
' 変更されたセルがDB更新対象のセルであれば、フラグをTrueにする
If DataGridView1.Columns(e.ColumnIndex).Name = "売上金" Then
glbCellChangeFlag = True
End Select
End Sub
' CellValidatedイベントハンドラ
Private Sub DataGridView1_CellValidated(ByVal sender As Object, _
ByVal e As DataGridViewCellEventArgs) _
Handles DataGridView1.CellValidated
' セルが変更されたフラグがTrueである
If glbCellChangeFlag Then
glbCellChangeFlag = False
' ## ここにデータベースの更新処理を記述する
End If
End Sub