对于每个使用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
}

我可以从这里得到一些指导。

对于每个使用Gridviews

一般来说,你可以从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。使用类似实体框架的东西,你可以让它生成基于现有数据库的强类型模型,这样你就不用再操作行对象了。