前提・実現したいこと
検索して対象データがない場合に初期表示の時と同じ表示にさせたいです。
DateGridViewのデザイナーで、dataGridView1.Rows.Add(27)と指定していますので、
初期表示の際には空白の行が27行表示されていて理想の表示ができていますが、
検索条件に条件を設定してデータ検索した後に、対象のデータがない場合に、
空白の行が27行表示されていてほしいのですが、表示されません。
該当のソースコード
' 検索ボタン押下時の処理 Sub ShowResultSet(reader As ICustomDataReader) Dim dt As DataTable Dim dr As DataRow 'データテーブル作成 dt = New DataTable() dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn1", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn2", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn3", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn4", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn5", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn6", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn7", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn8", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn9", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn10", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn11", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn12", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn13", GetType(String))) dt.Columns.Add(New DataColumn("DataGridViewTextBoxColumn14", GetType(String))) Dim i As Long i = 0 Do While reader.Read dr = dt.NewRow() dr(0) = reader.GetValue("dtlHinmokuCd") dr(1) = reader.GetValue("dtlHinmokuName") dr(2) = reader.GetValue("dtlKikaku") dr(3) = reader.GetValue("dtlNyukaSoko") dr(4) = reader.GetValue("dtlLotNo") dr(5) = reader.GetValue("dtlNyukoNo") Dim shohikigenrd As String = reader.GetValue("dtlShiyoukigen").ToString() If shohikigenrd.Length >= 8 Then dr(6) = shohikigenrd.Substring(2, 2) + "/" + shohikigenrd.Substring(4, 2) + "/" + shohikigenrd.Substring(6, 2) End If dr(7) = reader.GetValue("dtlSanchimei") dr(8) = reader.GetValue("dtlDenpyo") Dim nyukadaterd As String = reader.GetValue("dtlNyukaDate").ToString() If nyukadaterd.Length >= 8 Then dr(9) = nyukadaterd.Substring(2, 2) + "/" + nyukadaterd.Substring(4, 2) + "/" + nyukadaterd.Substring(6, 2) End If dr(10) = reader.GetValue("dtlShiiresakiCd") dr(11) = reader.GetValue("dtlShiiresakiName") dr(12) = reader.GetValue("dtlNyukaSuryo") dr(13) = reader.GetValue("dtlTani") dt.Rows.Add(dr) i = i + 1 Loop 'DataSourceにDataTableを設定 Me.dataGridView1.DataSource = dt If i = 0 Then 'データ無い時に空白の行を表示させたい。 dataGridView1.Columns.Add("", "dtlHinmokuCd") dataGridView1.Columns.Add("", "dtlHinmokuName") dataGridView1.Columns.Add("", "dtlKikaku") dataGridView1.Columns.Add("", "dtlNyukaSoko") dataGridView1.Columns.Add("", "dtlLotNo") dataGridView1.Columns.Add("", "dtlNyukoNo") dataGridView1.Columns.Add("", "dtlShiyoukigen") dataGridView1.Columns.Add("", "dtlSanchimei") dataGridView1.Columns.Add("", "dtlDenpyo") dataGridView1.Columns.Add("", "dtlNyukaDate") dataGridView1.Columns.Add("", "dtlShiiresakiCd") dataGridView1.Columns.Add("", "dtlShiiresakiName") dataGridView1.Columns.Add("", "dtlNyukaSuryo") dataGridView1.Columns.Add("", "dtlTani") dataGridView1.Rows.Add(27) MsgBox("対象データがありません。") End If reader.Close() End Sub
これを実行すると「コントロールがデータバインドされている時、DateGridViewの行コレクションにプログラムで行を追加することはできません」と表示されてしまいます。
なぜDateGridViewのデザイナーで、dataGridView1.Rows.Add(27)と指定いて設定が消えてしまうかも謎です。
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 07:22
2020/07/14 07:38
2020/07/14 07:58