看板 C_Sharp 關於我們 聯絡資訊
我要將Excel檔的資料讀取到Listbox內 Excel檔的第二欄為IP位址(假設為127.0.0.1~127.0.0.30)共30筆 那我要把這些IP位址抓進Listbox內,我的寫法如下... 我是用 using System.Data.OleDb; 的方式 連結那部份就省略了... try { DataSet ds = new DataSet(); DataTable dt = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); if (dt.Rows[0]["TABLE_Name"].ToString().IndexOf("$") < 0) { dt.Rows[0]["TABLE_Name"] += "$"; } string strSelect = "Select * From [" + dt.Rows[0]["TABLE_Name"].ToString() + "] "; OleDbDataAdapter da = new OleDbDataAdapter(strSelect, strConn); //MessageBox.Show(dt.Rows[0]["TABLE_Name"].ToString()); // 顯 示 Excel工作表 da.Fill(ds, dt.Rows[0]["TABLE_Name"].ToString()); //將 Excel 工作表丟入ds 資料庫 da.Dispose(); //清除快取資源 ds.Tables[dt.Rows[0]["TABLE_Name"].ToString()].Rows.RemoveAt(0); //dataGridView1.DataSource = ds.Tables[dt.Rows[0]["TABLE_Name"].ToString()]; //顯示資料庫內的資料 → listBox1.DataSource = ds.Tables[0]; → listBox1.Text = listBox1.SelectedItem.ToString(); → listBox1.DisplayMember = "IP_Group1"; } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conn.Close(); Conn.Dispose(); } 但是,問題發生了,就是Listbox下方會有多餘的空白, 我個人推想是因為一併連同Excel檔沒資料的欄也一併抓入的關係 但是,我想寫一個判斷欄位有沒有資料的辦法 也就是在Listbox的地方加個判斷(如上方箭頭處→) 我的判斷寫法如下 for (int i=0;i<ds.Tables.Count-1;i++) { listBox1.DataSource = ds.Tables[i]; listBox1.Text = listBox1.SelectedItem.ToString(); listBox1.DisplayMember = "IP_Group1"; } 但是,用這種方法判斷結果還是一樣,Listbox下方仍有很多空白 請問各位我有哪裡需要修改呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.24.180