我有一个表单,当它创建时,它将是此查询
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;
}
一旦我打电话给我,我会将其插入变量并将其作为参数传递给
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 :(得分:2)
我做的是,替换我的连接字符串,然后在我的查询中更改,我的Query soo似乎有问题,这就是为什么它不起作用。它没有产生任何结果。
所以我做的是,每次调用此事件并更改我使用的数据源dgvMyPatients.Columns.Clear(); and dgvMyPatients.Refresh();
答案 1 :(得分:1)
尝试添加这些行
dgvMyPatients.Columns.Clear();
dgvMyPatients.AutoGenerateColumns = true;
dgvMyPatients.DataSource = bs;