2009-10-29 7 views
5

Sto tentando di associare un DataTable a una fisarmonica e ho scoperto che se richiamo DataTable da un database utilizzando un adattatore da tavolo si lega perfettamente alla fisarmonica, tuttavia ciò che voglio fare è creare una tabella fittizia (per scopi di test, se non ho accesso al mio database) il codice per creare la tabella fittizia è qui sotto:Creazione di un oggetto DataTable con dati fittizi

DataTable table2 = new DataTable("articletable"); 
    table2.Columns.Add("articleID"); 
    table2.Columns.Add("title"); 
    table2.Columns.Add("content"); 

    DataRow row = table2.NewRow(); 
    row[0] = "1"; 
    row[1] = "article name"; 
    row[2] = "article contents go here"; 
    table2.Rows.Add(row); 

Quando provo a legare i dati che tavolo però la fisarmonica non visualizza . Posso legarlo a una vista a griglia oa dettagli ma non alla fisarmonica.

+0

si può provare ad aggiungere più informazioni alle colonne come dTable.Columns.Add ("firstName", Type.GetType ("System.String"))? –

+0

Potrei provarlo ma, come ho detto prima, posso catalogare tale tabella su una griglia senza problemi. – Morgeh

risposta

18

dopo 4 ore di sbattere la testa contro il muro, ho scoperto che il campo DataSource è molto esigente.

Ecco il mio codice:

DataSet ds = new DataSet(); 

     DataTable dt = new DataTable(); 
     dt.Columns.Add("Name"); 
     dt.Columns.Add("Branch"); 
     dt.Columns.Add("Officer"); 
     dt.Columns.Add("CustAcct"); 
     dt.Columns.Add("Grade"); 
     dt.Columns.Add("Rate"); 
     dt.Columns.Add("OrigBal"); 
     dt.Columns.Add("BookBal"); 
     dt.Columns.Add("Available"); 
     dt.Columns.Add("Effective"); 
     dt.Columns.Add("Maturity"); 
     dt.Columns.Add("Collateral"); 
     dt.Columns.Add("LoanSource"); 
     dt.Columns.Add("RBCCode"); 

     dt.Rows.Add(new object[] { "James Bond, LLC", 120, "Garrison Neely", "123 3428749020", 35, "6.000", "$24,590", "$13,432", 
      "$12,659", "12/13/21", "1/30/27", 55, "ILS", "R"}); 

     ds.Tables.Add(dt); 

     accReportData.DataSourceID = null; 
     accReportData.DataSource = ds.Tables[0].DefaultView; 
     accReportData.DataBind(); 

scopre che la fisarmonica sola piace essere legato a predefinita di una tabella di dati. Ho provato a legare solo a un DataTable (dt) e non è riuscito. Anche dt.DefaultView non è riuscito. Una volta che l'ho aggiunto a un DataSet, si lega come un campione. Molto fastidioso, con la perdita di tempo perso. So che probabilmente lo hai dimenticato da tempo, ma volevo renderlo disponibile ai futuri utenti. Accordion.DataSource deve essere associato a DataSet.Table.DefaultView per funzionare.

1

Assicurarsi di specificare un tipo per le colonne nella table2.Columns.Add (...)

0

Inoltre, come si vede nella risposta qui sotto:

https://stackoverflow.com/a/6108163/637903

È possibile associare il controllo della fisarmonica ad un DataTableReader costruito dall'originale DataTable

accReportData.DataSource = new System.Data.DataTableReader(ds.Tables[0]); 
accReportData.DataBind(); 
Problemi correlati