質問編集履歴
2
使用ツールの変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -239,8 +239,8 @@
|
|
239
239
|
|
240
240
|
### 補足情報(FW/ツールのバージョンなど)
|
241
241
|
|
242
|
-
VIsualStudio2022 C# .NET
|
242
|
+
VIsualStudio2022 C# .NET Framework フォームデザイナーを用いています。
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
|
1
質問の追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VisualStudio2022でDataTableとDataGridViewのバインドをしたものをDataGridViewのほうから選択的に削除・編集したいです。
|
1
|
+
VisualStudio2022でDataTableとDataGridViewのバインドをしたものをDataGridViewのほうから選択的に削除・編集、CSVの読み込みがしたいです。
|
test
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
違うボタンを押すことで「選択されたデータグリッドが削除→データテーブルも削除」
|
6
6
|
また違うボタンを押すことで「選択されたデータグリッドが削除→データテーブルも削除→コンボボックスとNumericUpDownに入れた数字をデータテーブルに入れる→データグリッドに表示」
|
7
7
|
|
8
|
+
②CSVファイルを読み込んでDataTableにいれ、DataGridViewで表示
|
9
|
+
|
8
10
|
### 前提
|
9
11
|
|
10
12
|
「コンボボックスとNumericUpDownに入れた数字をデータテーブルに入れる→データグリッドに表示させる」がボタンで実行されるという状態です。
|
@@ -13,6 +15,11 @@
|
|
13
15
|
|
14
16
|
Data Tableから読み込んでいるData Grid Viewの1行を選択的に削除するにはどうしたらいいのでしょうか?
|
15
17
|
今現状、データグリッドを削除・編集するというコードのみで、選択的に消されないという状況です。しかもデータグリッドからも消されない。
|
18
|
+
|
19
|
+
また、ファイル選択後、読み込みをしようとするとエラーが出ます。(//*1)
|
20
|
+
→ハンドルされていない例外
|
21
|
+
System.Data.OleDb.OleDbException: '1 つ以上の必要なパラメーターの値が設定されていません。'
|
22
|
+
という表示が出ます。
|
16
23
|
|
17
24
|
### 該当のソースコード
|
18
25
|
|
@@ -157,10 +164,75 @@
|
|
157
164
|
}
|
158
165
|
|
159
166
|
}
|
167
|
+
/// <summary>
|
168
|
+
/// 買い物リストをcsvファイルから読み込む
|
169
|
+
/// </summary>
|
170
|
+
/// <param name="sender"></param>
|
171
|
+
/// <param name="e"></param>
|
172
|
+
private void LoadingButton_Click(object sender, EventArgs e)
|
173
|
+
{
|
174
|
+
var dlg = new OpenFileDialog()
|
175
|
+
{
|
176
|
+
Title = "ファイルの選択",
|
177
|
+
CheckFileExists = true,
|
178
|
+
RestoreDirectory = true,
|
179
|
+
InitialDirectory = @"C:\",
|
180
|
+
FileName = @"ItemList.csv",
|
181
|
+
Filter = "CSVファイル|*.csv|すべてのファイル|*.*"
|
182
|
+
};
|
183
|
+
|
184
|
+
if (dlg.ShowDialog() == DialogResult.OK)
|
185
|
+
{
|
186
|
+
OleDbConnection connection;
|
187
|
+
OleDbCommand command;
|
188
|
+
OleDbDataAdapter adapter;
|
189
|
+
|
190
|
+
DataSet dataset = new DataSet();
|
191
|
+
DataGrid datagrid = new DataGrid();
|
192
|
+
|
193
|
+
connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Path.GetDirectoryName(dlg.FileName) + "\\; Extended Properties=\"Text;HDR=YES;FMT=Delimited\"");
|
194
|
+
command = new OleDbCommand("SELECT [日付], [商品], [個数], [値段] FROM [" + Path.GetFileName(dlg.FileName) + "]", connection);
|
195
|
+
|
196
|
+
dataset.Clear();
|
197
|
+
|
198
|
+
adapter = new OleDbDataAdapter(command);
|
199
|
+
adapter.Fill(dataset); //*1
|
200
|
+
|
201
|
+
|
202
|
+
dt.Columns.Add("日付");
|
203
|
+
dt.Columns.Add("商品");
|
204
|
+
dt.Columns.Add("個数");
|
205
|
+
dt.Columns.Add("値段");
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
for (int line = 0; line < dataset.Tables[0].Rows.Count; line++)
|
210
|
+
{
|
211
|
+
DataRow data = dataset.Tables[0].Rows[line];
|
212
|
+
Object[] new_row = new Object[]
|
213
|
+
{
|
214
|
+
String.Format(@"{0} ({1})", data["日付"], data["商品"]), data["個数"], data["値段"]
|
215
|
+
};
|
216
|
+
|
217
|
+
dt.Rows.Add(new_row);
|
218
|
+
|
219
|
+
}
|
220
|
+
|
221
|
+
datagrid.DataSource = dt;
|
222
|
+
}
|
223
|
+
|
224
|
+
else
|
225
|
+
{
|
226
|
+
MessageBox.Show("ファイルが見つかりません");
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
160
231
|
}
|
161
232
|
|
162
233
|
|
163
234
|
|
235
|
+
|
164
236
|
```
|
165
237
|
|
166
238
|
|