2012-04-01 37 views
2

更改数据源后,我必须在创建它当一个表单,我们这个查询的DataGridView是空的,在运行时

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; 
    } 

一旦我打电话,我将它插入到一个变量,并把它作为这里PARAMATERS

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

听起来很简单吧?但是当我运行此查询

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; 
} 

,并作为参数传递给fillDataGrid() DataGrid中都会有一个空值,即使没有来自该查询

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

注意结果:两者的查询返回PATIENTINFO,我会在同一个DataGrid中被插入

+0

我找到了答案为自己的数据源时,是合法的回答我的问题吗? – KyelJmD 2012-04-01 10:15:33

+0

当然[答案 - 你自己的问题](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) – Steve 2012-04-01 11:32:40

回答

2

我做的是,替换我的连接字符串,然后在我的查询中更改,似乎有问题在我的查询soo,这就是为什么它不工作。它没有产生任何结果。

所以我所做的就是,每次我打电话这一事件,并改变我用dgvMyPatients.Columns.Clear(); and dgvMyPatients.Refresh();

1

尝试添加这些行

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