2012-04-01 5 views
2

ich ein Formular, wo, wenn es erstellt wurde, wird es diese AbfrageDatagridview ist leer, nachdem Runtime bei Datasource ändern

public IQueryable<PatientInfo> showMyPatients() 
{  
     DbClassesDataContext myDb = new DbClassesDataContext(dbPath); 
     var patientInfo = from patients in myDb.PatientInfos 
          where patients.Phy_ID == physcianID 
          select patients; 

     return patientInfo; 
    } 

Sobald ich nennen, dass ich es auf eine Variable einfügen wird und als Paramater passieren hier

public void fillDataGrid(IQueryable<PatientInfo> patients) 
{     
     dgvMyPatients.DataSource = patients; 
} 

Klingt einfach richtig? aber wenn ich diese Abfrage ausführen

private IQueryable<PatientInfo> searchPatient() 
{  
     DbClassesDataContext myDb = new DbClassesDataContext(dbPath); 
     var search = from myPatients in myDb.PatientInfos 
        where (myPatients.Pat_ID == patient_ID && myPatients.Pat_First_Name.Contains(txtSearch.Text)) || 
         (myPatients.Pat_ID == patient_ID && myPatients.Pat_Last_Name.Contains(txtSearch.Text)) || 
         (myPatients.Pat_ID == patient_ID && myPatients.Pat_Middle_Name.Contains(txtSearch.Text)) 
         select myPatients; 

     return search; 
} 

und geben sie als Parameter an fillDataGrid() das Datagrid wird einen leeren Wert, obwohl es ein Ergebnis aus dieser Abfrage ist

BindingSource bs = new BindingSource(); 
bs.DataSource = searchPatient(); 
dgvMyPatients.DataSource = bs; 

HINWEIS: Sowohl der Abfragen geben Patienteninfo und ich würde

+0

ich die Antwort ändern für mich herausgefunden, ist es echt meine eigene Frage zu beantworten? – KyelJmD

+0

Natürlich [answer-your-own-questions] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) – Steve

Antwort

2

Was ich getan habe, war Ersetzen meiner Verbindungszeichenfolge, dann in meiner Abfrage geändert, scheint es ein Problem auf meiner Query so, dass es deshalb nicht funktioniert. Es bringt kein Ergebnis.

Also, was ich tat, war, jedes Mal, wenn ich dieses Ereignis nennen und die Datenquelle I dgvMyPatients.Columns.Clear(); and dgvMyPatients.Refresh(); verwenden

1

Versuchen im gleichen Datagrid dieser Zeilen hinzuzufügen, wird das Einfügen

dgvMyPatients.Columns.Clear(); 
dgvMyPatients.AutoGenerateColumns = true; 
dgvMyPatients.DataSource = bs; 
Verwandte Themen