2017-02-21 155 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