对于每个使用Gridviews
本文关键字:Gridviews 于每个 | 更新日期: 2023-09-27 18:02:18
所以我已经在这个项目上工作了一段时间了,我被困在一个数据网格上,我想我想得太多了。我需要搜索我的oracle数据库的药物id,然后做一个foreach循环,从数据库中取出使用该药物id的时间,并将其附加到一个新的列。以下是目前为止的内容:
// CONNECT TO THE ORACLE DATABASE
HCconn.ConnectionString = HCtest;
HCconn.Open();
// BUILD SQL COMMAND
OracleCommand cmd = new OracleCommand(queryString, HCconn);
cmd.Parameters.Add("@visitNo",visitno);
cmd.CommandType = CommandType.Text;
// POPULATE GRIDVIEW
GridView_inpatientRx.AutoGenerateColumns = true;
DataSet ds = new DataSet();
OracleDataAdapter oAdapter = new OracleDataAdapter(cmd);
oAdapter.Fill(ds);
GridView_inpatientRx.DataSource = ds.Tables[0];
GridView_inpatientRx.DataBind();
foreach (GridViewRow row in GridView_inpatientRx.Rows)
{
// HERE IS WHERE I'M STUCK
}
我可以从这里得到一些指导。
一般来说,你可以从GridView中提取数据在你的循环例子:
foreach (GridViewRow row in GridView_inpatientRx.Rows)
{
// and now read the content
row.Cells[NumberOfCell].Text
}
如果可能的话,我会尝试在您正在构建的SQL查询中连接。
select d.drugid, d.drugname, p.patientName, dose.lastAdmistered from drug d
inner join dose dose on d.drugid=dose.drugid
inner join patient p on p.patientId = dose.patientId
如果不可能,那么我会查看RowsAdded事件。
我现在没有一个winforms项目,但是你会想要绑定你的网格,然后在每个行添加的事件调用上做你的查找(查询选项会更有效)。
我建议你研究一下ORM,比如实体框架或NHibernate。使用类似实体框架的东西,你可以让它生成基于现有数据库的强类型模型,这样你就不用再操作行对象了。