2016-05-11 25 views
0

Ich habe gerade angefangen, auf C# und sql zu arbeiten, ich suchte, aber ich konnte keine Lösung für mein Problem finden, ich hoffe, jemand wird mir helfen. Ich habe eine DataGridView auf dem Formular, das dynamisch erstellt wird. Ich bekomme 8 Spalten von der Datenbank mit LINQ zu SQL. aber ich erstelle auch einen anderen Spaltennamen als "Berechnung", die die anderen Spalten Daten verwendet. Meine Frage ist, dass ich meine Tabelle basierend auf Berechnungsspalte filtern muss. Im Folgenden Teil meines Code:Dynamic DataGridView Filterung C#

// get datas from database. 
var query = _context.Database.SqlQuery<my_Type>("my_stored_procedure"); 

var binding = new BindingList<my_Type>(query.ToList()); 
      bsMasterPrimary.DataSource = binding; 
      myDataGridView.DataSource = bsMasterPrimary; 


//filter 

DataView dv = new DataView(); 

dv = myDataGridView.DataSource as DataView;//dv always comes null 



dv.RowFilter = string.format("Calculation <0"); 
    // dt = (DataTable)((BindingSource)this.dgvAmazonFBAInventory.DataSource).DataSource; 

habe ich versucht, dies auch, aber es gab einen Fehler:

Unable to cast object of type 'System.ComponentModel.BindingList`1[MyProject.MyType]' to type 'System.Data.DataTable'. }

Antwort

0

Es ist einfacher, ein verschachteltes for-Schleife zu verwenden, um die Werte des Datenrasteransicht der zuweisen Datentabelle OR Sie das Datagrid in ein Dataview werfen können dann die Daten im Hinblick auf einen konvertieren Datentabelle

+0

ich versuchte, meine Datagridview Dataview zu werfen, aber ich Paar scheiterte times.How kann ich das tun? ich versucht, Dataview dv = MyDataGridView .DataSource a s DataView Aber es hat nicht funktioniert, danke. – mmcdln

+0

Siehe diesen Thread http://stackoverflow.com/questions/6295161/how-to-build-a-datatable-from-a-datagridview – Shon

+0

Grundsätzlich DataTable dt = (DataTable) datagridview.datasource – Shon