2017-02-21 3 views
0

System.Data.DataRowView wird nur in dem Kombinationsfeld anstelle von "PMName" von Sheet1 von Project.xlsx angezeigt. Außerdem wird beim Hinzufügen von DisplayMember oder ValueMember ein Fehler angezeigt, der besagt, dass die Eigenschaft nicht existiert.Füllen von Kombinationsfeld mit einer Spalte aus Excel-Blatt 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); 
    } 
} 

Antwort

0

Versuchen ein Artikel von einem foreach (var item in xlRange) { comboBox1.Items.Add(item); }

+0

Danke ... aber half meinem Problem nicht. Ich erhalte bereits die genaue Anzahl von "System.Data.DataRowView" als die Anzahl der Elemente in Kombinationsfeld. – 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"); 
     } 

Das funktionierte hinzuzufügen! Danke @AKN

Verwandte Themen