質問編集履歴
2
修正後ソースの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,11 +4,69 @@
|
|
4
4
|
|
5
5
|
削除ボタン(DelBtn)をクリックすると確認メッセージ表示後にDataGridViewのその行を削除するという仕様です。
|
6
6
|
|
7
|
-
削除ボタンクリックイベント内削除処理の"UPDATE mst_address SET DEL_FLG = 1"のWHERE句の指定の仕方がわからず、現在は削除ボタンをクリックすると全てのデータのDEL_FLGが1になってしまいます。WHERE句で削除ボタンをクリックした行を指定するにはどうしたら良いでしょうか
|
7
|
+
削除ボタンクリックイベント内削除処理の"UPDATE mst_address SET DEL_FLG = 1"のWHERE句の指定の仕方がわからず、現在は削除ボタンをクリックすると全てのデータのDEL_FLGが1になってしまいます。WHERE句で削除ボタンをクリックした行を指定するにはどうしたら良いでしょうか?
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
8
|
-
|
13
|
+
テーブルは以下になります。
|
14
|
+
|
15
|
+
主キーはSEQ_NOとなっており、非表示の状態です。
|
16
|
+
|
17
|
+
一行ごとに削除ボタンがあるDataGridViewで、ボタンを押下した行を削除するという仕様です。
|
18
|
+
|
9
|
-
よろしくお願いします。
|
19
|
+
よろしくお願い致します。
|
20
|
+
|
10
|
-
|
21
|
+
```SQL
|
22
|
+
|
23
|
+
|
24
|
+
|
11
|
-
|
25
|
+
CREATE TABLE `mst_address` (
|
26
|
+
|
27
|
+
`SEQ_NO` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理番号',
|
28
|
+
|
29
|
+
`NAME1` varchar(10) NOT NULL COMMENT '氏名1',
|
30
|
+
|
31
|
+
`NAME2` varchar(10) NOT NULL COMMENT '氏名2',
|
32
|
+
|
33
|
+
`ZIP1` varchar(3) NOT NULL COMMENT '郵便番号1',
|
34
|
+
|
35
|
+
`ZIP2` varchar(4) NOT NULL COMMENT '郵便番号2',
|
36
|
+
|
37
|
+
`ADDRESS3` varchar(100) NOT NULL COMMENT '住所3',
|
38
|
+
|
39
|
+
`ADDRESS1` varchar(100) DEFAULT NULL COMMENT '住所1',
|
40
|
+
|
41
|
+
`ADDRESS2` varchar(100) DEFAULT NULL COMMENT '住所2',
|
42
|
+
|
43
|
+
`TEL` varchar(20) DEFAULT NULL COMMENT '電話番号',
|
44
|
+
|
45
|
+
`INS_USER` varchar(10) NOT NULL COMMENT '登録者',
|
46
|
+
|
47
|
+
`INS_DATETIME` datetime NOT NULL COMMENT '登録日',
|
48
|
+
|
49
|
+
`UPD_USER` varchar(10) NOT NULL COMMENT '更新者',
|
50
|
+
|
51
|
+
`UPD_DATETIME` datetime NOT NULL COMMENT '更新日',
|
52
|
+
|
53
|
+
`DEL_FLG` bit(1) NOT NULL COMMENT '削除フラグ',
|
54
|
+
|
55
|
+
PRIMARY KEY (`SEQ_NO`)
|
56
|
+
|
57
|
+
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
```
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
追記
|
66
|
+
|
67
|
+
主キーSEQ_NOを追加(テーブルには非表示)し、WHERE句に指定した修正後ソースコードです。
|
68
|
+
|
69
|
+
dataGridView1.CurrentRow.Cells[1].ValueでSEQ_NOの値が取得できることは確認しています。
|
12
70
|
|
13
71
|
|
14
72
|
|
@@ -44,7 +102,7 @@
|
|
44
102
|
|
45
103
|
MySqlConnection conn = new MySqlConnection();
|
46
104
|
|
47
|
-
conn.ConnectionString = "server=サーバ名; user id=
|
105
|
+
conn.ConnectionString = "server=サーバ名; user id=ID; Password=PW; database=address_note";
|
48
106
|
|
49
107
|
|
50
108
|
|
@@ -62,7 +120,7 @@
|
|
62
120
|
|
63
121
|
//SQL文と接続情報を引数に、データアダプターを作成
|
64
122
|
|
65
|
-
MySqlDataAdapter da = new MySqlDataAdapter("SELECT NAME1,NAME2,ZIP1,ZIP2,ADDRESS1,ADDRESS2,ADDRESS3,TEL FROM mst_address WHERE DEL_FLG = 0", conn);
|
123
|
+
MySqlDataAdapter da = new MySqlDataAdapter("SELECT **SEQ_NO,** NAME1,NAME2,ZIP1,ZIP2,ADDRESS1,ADDRESS2,ADDRESS3,TEL FROM mst_address WHERE DEL_FLG = 0", conn);
|
66
124
|
|
67
125
|
|
68
126
|
|
@@ -86,29 +144,35 @@
|
|
86
144
|
|
87
145
|
|
88
146
|
|
147
|
+
|
148
|
+
|
149
|
+
** dataGridView1.Columns[1].Visible = false; //SEQ_NOを非表示にする**
|
150
|
+
|
89
151
|
//横幅指定・削除ボタン配置
|
90
152
|
|
91
|
-
dataGridView1.Columns[
|
153
|
+
dataGridView1.Columns[2].Width = 50;
|
92
|
-
|
154
|
+
|
93
|
-
dataGridView1.Columns[
|
155
|
+
dataGridView1.Columns[3].Width = 45;
|
94
|
-
|
95
|
-
dataGridView1.Columns[3].Width = 40;
|
96
156
|
|
97
157
|
dataGridView1.Columns[4].Width = 40;
|
98
158
|
|
99
|
-
dataGridView1.Columns[5].Width =
|
159
|
+
dataGridView1.Columns[5].Width = 40;
|
160
|
+
|
100
|
-
|
161
|
+
dataGridView1.Columns[6].Width = 70;
|
162
|
+
|
101
|
-
dataGridView1.Columns[
|
163
|
+
dataGridView1.Columns[7].Width = 42;
|
102
|
-
|
164
|
+
|
103
|
-
dataGridView1.Columns[
|
165
|
+
dataGridView1.Columns[8].Width = 40;
|
166
|
+
|
104
|
-
|
167
|
+
dataGridView1.Columns[9].Width = 90;
|
168
|
+
|
105
|
-
dataGridView1.Columns["DelBtn"].DisplayIndex =
|
169
|
+
dataGridView1.Columns["DelBtn"].DisplayIndex = 9;
|
106
170
|
|
107
171
|
|
108
172
|
|
109
173
|
//氏名昇順でソートする
|
110
174
|
|
111
|
-
dataGridView1.Sort(dataGridView1.Columns[
|
175
|
+
dataGridView1.Sort(dataGridView1.Columns[2], ListSortDirection.Ascending);
|
112
176
|
|
113
177
|
}
|
114
178
|
|
@@ -152,7 +216,7 @@
|
|
152
216
|
|
153
217
|
conn.ConnectionString = Properties.Settings.Default.address_noteConnectionString;
|
154
218
|
|
155
|
-
MySqlCommand sqlCommand = new MySqlCommand(@"SELECT NAME1, NAME2, ZIP1, ZIP2, ADDRESS1, ADDRESS2, ADDRESS3, TEL FROM mst_address WHERE ADDRESS1 = @ADDRESS1 AND DEL_FLG = 0", conn);
|
219
|
+
MySqlCommand sqlCommand = new MySqlCommand(@"SELECT **SEQ_NO**, NAME1, NAME2, ZIP1, ZIP2, ADDRESS1, ADDRESS2, ADDRESS3, TEL FROM mst_address WHERE ADDRESS1 = @ADDRESS1 AND DEL_FLG = 0", conn);
|
156
220
|
|
157
221
|
|
158
222
|
|
@@ -220,7 +284,7 @@
|
|
220
284
|
|
221
285
|
conn.ConnectionString = Properties.Settings.Default.address_noteConnectionString;
|
222
286
|
|
223
|
-
MySqlCommand sqlCommand = new MySqlCommand(@"SELECT NAME1, NAME2, ZIP1, ZIP2, ADDRESS1, ADDRESS2, ADDRESS3, TEL FROM mst_address WHERE NAME1 LIKE @NAME1 AND DEL_FLG = 0", conn);
|
287
|
+
MySqlCommand sqlCommand = new MySqlCommand(@"SELECT **SEQ_NO**, NAME1, NAME2, ZIP1, ZIP2, ADDRESS1, ADDRESS2, ADDRESS3, TEL FROM mst_address WHERE NAME1 LIKE @NAME1 AND DEL_FLG = 0", conn);
|
224
288
|
|
225
289
|
|
226
290
|
|
@@ -316,9 +380,11 @@
|
|
316
380
|
|
317
381
|
{
|
318
382
|
|
319
|
-
|
320
|
-
|
321
|
-
// 削除
|
383
|
+
// 削除
|
384
|
+
|
385
|
+
//this.dataGridView1.Rows.RemoveAt(e.RowIndex);
|
386
|
+
|
387
|
+
|
322
388
|
|
323
389
|
MySqlConnection conn = new MySqlConnection();
|
324
390
|
|
@@ -326,7 +392,7 @@
|
|
326
392
|
|
327
393
|
conn.Open();
|
328
394
|
|
329
|
-
MySqlCommand sqlCommand = new MySqlCommand("UPDATE mst_address SET DEL_FLG = 1", conn);
|
395
|
+
MySqlCommand sqlCommand = new MySqlCommand("UPDATE mst_address SET DEL_FLG = 1** WHERE SEQ_NO = dataGridView1.CurrentRow.Cells[1].Value**", conn);
|
330
396
|
|
331
397
|
DataTable dt = new DataTable();
|
332
398
|
|
@@ -340,10 +406,10 @@
|
|
340
406
|
|
341
407
|
|
342
408
|
|
343
|
-
|
344
|
-
|
345
409
|
MessageBox.Show("削除完了しました。");
|
346
410
|
|
411
|
+
|
412
|
+
|
347
413
|
}
|
348
414
|
|
349
415
|
else
|
@@ -362,60 +428,8 @@
|
|
362
428
|
|
363
429
|
}
|
364
430
|
|
365
|
-
|
431
|
+
|
432
|
+
|
433
|
+
|
366
434
|
|
367
435
|
```
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
追記
|
372
|
-
|
373
|
-
テーブルは以下になります。
|
374
|
-
|
375
|
-
主キーはSEQ_NOとなっており、非表示の状態です。
|
376
|
-
|
377
|
-
一行ごとに削除ボタンがあるDataGridViewで、ボタンを押下した行を削除するという仕様です。
|
378
|
-
|
379
|
-
よろしくお願い致します。
|
380
|
-
|
381
|
-
```SQL
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
CREATE TABLE `mst_address` (
|
386
|
-
|
387
|
-
`SEQ_NO` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理番号',
|
388
|
-
|
389
|
-
`NAME1` varchar(10) NOT NULL COMMENT '氏名1',
|
390
|
-
|
391
|
-
`NAME2` varchar(10) NOT NULL COMMENT '氏名2',
|
392
|
-
|
393
|
-
`ZIP1` varchar(3) NOT NULL COMMENT '郵便番号1',
|
394
|
-
|
395
|
-
`ZIP2` varchar(4) NOT NULL COMMENT '郵便番号2',
|
396
|
-
|
397
|
-
`ADDRESS3` varchar(100) NOT NULL COMMENT '住所3',
|
398
|
-
|
399
|
-
`ADDRESS1` varchar(100) DEFAULT NULL COMMENT '住所1',
|
400
|
-
|
401
|
-
`ADDRESS2` varchar(100) DEFAULT NULL COMMENT '住所2',
|
402
|
-
|
403
|
-
`TEL` varchar(20) DEFAULT NULL COMMENT '電話番号',
|
404
|
-
|
405
|
-
`INS_USER` varchar(10) NOT NULL COMMENT '登録者',
|
406
|
-
|
407
|
-
`INS_DATETIME` datetime NOT NULL COMMENT '登録日',
|
408
|
-
|
409
|
-
`UPD_USER` varchar(10) NOT NULL COMMENT '更新者',
|
410
|
-
|
411
|
-
`UPD_DATETIME` datetime NOT NULL COMMENT '更新日',
|
412
|
-
|
413
|
-
`DEL_FLG` bit(1) NOT NULL COMMENT '削除フラグ',
|
414
|
-
|
415
|
-
PRIMARY KEY (`SEQ_NO`)
|
416
|
-
|
417
|
-
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
```
|
1
テーブル構造の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -365,3 +365,57 @@
|
|
365
365
|
|
366
366
|
|
367
367
|
```
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
追記
|
372
|
+
|
373
|
+
テーブルは以下になります。
|
374
|
+
|
375
|
+
主キーはSEQ_NOとなっており、非表示の状態です。
|
376
|
+
|
377
|
+
一行ごとに削除ボタンがあるDataGridViewで、ボタンを押下した行を削除するという仕様です。
|
378
|
+
|
379
|
+
よろしくお願い致します。
|
380
|
+
|
381
|
+
```SQL
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
CREATE TABLE `mst_address` (
|
386
|
+
|
387
|
+
`SEQ_NO` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理番号',
|
388
|
+
|
389
|
+
`NAME1` varchar(10) NOT NULL COMMENT '氏名1',
|
390
|
+
|
391
|
+
`NAME2` varchar(10) NOT NULL COMMENT '氏名2',
|
392
|
+
|
393
|
+
`ZIP1` varchar(3) NOT NULL COMMENT '郵便番号1',
|
394
|
+
|
395
|
+
`ZIP2` varchar(4) NOT NULL COMMENT '郵便番号2',
|
396
|
+
|
397
|
+
`ADDRESS3` varchar(100) NOT NULL COMMENT '住所3',
|
398
|
+
|
399
|
+
`ADDRESS1` varchar(100) DEFAULT NULL COMMENT '住所1',
|
400
|
+
|
401
|
+
`ADDRESS2` varchar(100) DEFAULT NULL COMMENT '住所2',
|
402
|
+
|
403
|
+
`TEL` varchar(20) DEFAULT NULL COMMENT '電話番号',
|
404
|
+
|
405
|
+
`INS_USER` varchar(10) NOT NULL COMMENT '登録者',
|
406
|
+
|
407
|
+
`INS_DATETIME` datetime NOT NULL COMMENT '登録日',
|
408
|
+
|
409
|
+
`UPD_USER` varchar(10) NOT NULL COMMENT '更新者',
|
410
|
+
|
411
|
+
`UPD_DATETIME` datetime NOT NULL COMMENT '更新日',
|
412
|
+
|
413
|
+
`DEL_FLG` bit(1) NOT NULL COMMENT '削除フラグ',
|
414
|
+
|
415
|
+
PRIMARY KEY (`SEQ_NO`)
|
416
|
+
|
417
|
+
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
```
|