2017-02-21 103 views
0

System.Data.DataRowView只顯示在組合框中,而不是Project.xlsx的Sheet1中的「pmName」。另外,在添加DisplayMember或ValueMember時,會出現錯誤,說明屬性不存在。從Excel表C中填充組合框#

public void LoadCustomerCombo3() 
{ 
try 
{ 
    using (OleDbConnection conn = new OleDbConnection(constr_xls)) 
    { 
    conn.Open(); 
    string strSql = "SELECT pmName FROM [Sheet1$]"; 
    OleDbDataAdapter adapter = new OleDbDataAdapter(new OleDbCommand(strSql, conn)); 
    DataSet ds = new DataSet(); 
    adapter.Fill(ds); 
    testCombo.ItemsSource = ds.Tables[0].DefaultView; 
    conn.Close(); 
    } 
    } 
    catch (Exception ex) 
    { 
    Console.WriteLine(ex.Message); 
    } 
} 

回答

0

嘗試添加項目一個一個地 foreach (var item in xlRange) { comboBox1.Items.Add(item); }

+0

謝謝......但沒有幫助我的問題。我已經收到確切數量的「System.Data.DataRowView」作爲組合框中的項目數。 – nextCode

0
 try 
     { 
      OleDbConnection conn = new OleDbConnection(); 
      conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\kanndeva\\Documents\\Visual Studio 2015\\Projects\\DVC_ProjTool\\Project.xlsx; Extended Properties=Excel 12.0 XML;"; 
      conn.Open(); 
      OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn); 
      DataTable ds = new DataTable(); 
      da.Fill(ds); 
      stdCombo.Text = "--Select--"; 
      for (int i = 0; i < ds.Rows.Count; i++) 
      { 
       stdCombo.Items.Add(ds.Rows[i]["pmName"]); 
      } 

      conn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.GetBaseException().ToString(), "Error In Connection"); 
     } 

這個工作!謝謝@AKN