###ソースコード
Sample.cs
C#
1 /// <summary> 2 /// メインフォーム ロード時のイベントハンドラ 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void MainForm_Load(object sender, EventArgs e) 7 { 8 // 店舗ドロップダウンリストに紐付けるデータテーブルの初期化 9 { 10 _storeList = new DataTable(); 11 12 _storeList.Columns.Add("STORE_CODE", typeof(string)); 13 _storeList.Columns.Add("STORE_NAME", typeof(string)); 14 15 StoreComboBox.DataSource = _storeList; 16 17 StoreComboBox.DisplayMember = "STORE_NAME"; 18 StoreComboBox.ValueMember = "STORE_CODE"; 19 } 20 } 21 22 private bool UpdateStoreListComboBox() 23 { 24 bool isSuccess = true; 25 26 try 27 { 28 _storeList.Rows.Clear(); // ここでエラー(初回はOK) 29 30 StringBuilder query = new StringBuilder(); 31 32 query.AppendLine("SELECT"); 33 query.AppendLine(" CD_TENPO,"); 34 query.AppendLine(" CR_KANZIMEI"); 35 query.AppendLine("FROM"); 36 query.AppendLine(" MST_TENPO"); 37 query.AppendLine("WHERE"); 38 query.AppendLine(" DT_HEITEN = '1900-01-01'"); 39 40 SqlCommand sqlCommand = new SqlCommand(query.ToString(), _con); 41 42 SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); 43 44 while (sqlDataReader.Read()) 45 { 46 DataRow dataRow = _storeList.NewRow(); 47 48 dataRow["STORE_CODE"] = (string)sqlDataReader["CD_TENPO"]; 49 dataRow["STORE_NAME"] = (string)sqlDataReader["CR_KANZIMEI"]; 50 51 _storeList.Rows.Add(dataRow); 52 } 53 54 _storeList.AcceptChanges(); 55 56 sqlDataReader.Close(); 57 } 58 catch (Exception except) 59 { 60 isSuccess = false; 61 MessageBox.Show(except.Message); 62 } 63 64 return isSuccess; 65 }
###問題
ComboBoxのデータソースにDataTableを紐づけて使用したいのですが、DataTableにデータ追加後、データクリア(DataTable.Rows.Clear())を行うと**「オブジェク参照にオブジェクトインスタンスが設定されていません。」**とエラーメッセージボックス表示されます。
また不思議というか理解できないのが、このようなエラーが発生しているにも関わらず、例外をキャッチすることができません。(じゃあ、誰がこのエラーメッセージボックスを表示させているのか...?)
またデータクリアでエラーが発生しても後続の処理も問題なく行われます。処理としてはできているので問題ないといえば、問題ないのですが、どのような問題があってこのエラーメッセージボックスが表示されているかを知りたいです。
識者の方々のアドバイスを頂けたら幸いと思います。
###開発環境
- OS Windows7 professional x86
- IDE VisualStudio2017 community
- 言語 C#
- プロジェクト形式 Windowsフォームアプリ(.NET framework3.5)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。