DOBON.NETプログラミング道掲示板

No34186 の記事


■34186 / )  Re[2]: ListBoxにデータが表示されない
□投稿者/ ケミカル 一般人(2回)-(2019/03/07(Thu) 16:40:43)
  • アイコン
    dataTable2.Rows.Clear(); ではなくdataTable2.Clear(); でした。失礼しました。
    型付DataSetです。そして、dataTable2.Clear();のせいで希望通りの動きにならないと
    思っていましたが間違いでした。これは問題ありませんでした。
    
    問題になっているのは、追記しました「button3」の箇所でした。
    データベースに問合せをして、データが存在していれば、引き続き
    button2を押しても正しくdataTable2にデータが追加されListBox2にもデータが表示されていました。
    
    しかし、データベースにデータがなかった場合、button2を押すと
    dataTable2にはデータは追記されるものの(ブレイクポイントを設定して中身を見ています)、
    ListBox2には値が表示されませんでした。
    
    using System;
    using System.Data;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            DataTable dataTable1;
            DataTable dataTable2;
            private void Form1_Load(object sender, EventArgs e)
            {
                dataTable1 = new DataSet("DataSet1").Tables.Add("DataTable1");
                dataTable2 = new DataSet("DataSet1").Tables.Add("DataTable1");
                dataTable1.Columns.Add("DataColumn1");
                dataTable2.Columns.Add("DataColumn1");
    
                dataTable1.Rows.Add("aaa");
                dataTable1.Rows.Add("bbb");
                dataTable1.Rows.Add("ccc");
                dataTable1.AcceptChanges();
    
                dataTable2.Rows.Add("xxx");
                dataTable2.AcceptChanges();
    
                listBox1.DataSource = dataTable1;
                listBox1.DisplayMember = "DataColumn1";
                listBox2.DisplayMember = "DataColumn1";
                listBox2.DataSource = dataTable2;
            }
    
            private void button1_Click_1(object sender, EventArgs e)
            {
                dataTable2.Rows.Clear();
            }
    
            private void button2_Click_1(object sender, EventArgs e)
            {
                dataTable2.Rows.Add("TEST" + DateTime.Now.Ticks);
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                //DB接続部分省略
                var strSQL = "select * from table where col = '100'";
    
                using (SQLCommand command = new SQLCommand(sql, connection))
                {
                    using (SQLDataAdapter adp = new SQLDataAdapter())
                    {
                        adp.SelectCommand = command;
                        adp.Fill(dataTable2);
                    }
                }
            }
        }
    }
    

違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -