回答編集履歴

2 インデント追加・説明追記

Rayla_Purateado

Rayla_Purateado score 83

2017/02/09 16:08  投稿

ソースコード的になんとなくVB.NETかな?と思ったので、  
VB.NETだろうという形で、答えさせていただきます。  
(ASP.NETとかもあるだろ!とか言わないで...)  
 
原因ですが、間違いなく
>'グリッドビューでセルの値が変更された場合、更新列に3を表示する
>Private Sub DataDridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataDridView1.CellClick
```
グリッドビューでセルの値が変更された場合、更新列に3を表示する
Private Sub DataDridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataDridView1.CellClick
>If e.RowIndex >= 0 Then
>  DataDridView1.Rows(e.RowIndex).Cells(4).Value = "3"
>End If
If e.RowIndex >= 0 Then
  DataDridView1.Rows(e.RowIndex).Cells(4).Value = "3"
End If
```
これが原因です。
---
あくまでも、考え方というか、私だったらこうやるかなというやり方ですと、
SQLサーバー(データベース)から取得時にDataTableを使い、
それを、GridViewへ突っ込みます。
そして、GridView上で変更された値と、DataTable上の値を比較し、
変更されていた場合、その列の対象の行のみ更新(UPDATE)するという処理にします。
変更されていた場合、その列の対象の行のみ更新(UPDATE)するという処理にします。
(VB.NETだったらの話です)
(ASP.NETではそもそもDataTableが使えなかった覚えがあるので...うろ覚え)
1 誤字修正

Rayla_Purateado

Rayla_Purateado score 83

2017/02/09 16:03  投稿

原因ですが、間違いなく
>'グリッドビューでセルの値が変更された場合、更新列に3を表示する
>Private Sub DataDridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataDridView1.CellClick
>If e.RowIndex >= 0 Then
>  DataDridView1.Rows(e.RowIndex).Cells(4).Value = "3"
>End If
これが原因です。
---
あくまでも、考え方というか、私だったらこうやるかなというやり方ですと、
SQLサーバー(データベース)から取得時にDataTableを使い、
それを、GridViewへ突っ込みます。
そして、GridView上で変更された値と、DataTable上の値を比較し、
変更されていた場合、その列の対象の行のみ変更するという処理にします。
変更されていた場合、その列の対象の行のみ更新(UPDATE)するという処理にします。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る