foreach (DataRow pRow in ds.Tables["检验标本记录"].Rows) { for (int i = 0; i < ds.Tables["检验标本记录"].Rows.Count; i++) { string sid = ds.Tables["检验标本记录"].Rows[i][0].ToString(); MessageBox.Show(sid); string str1 = "Select Distinct 排列序号, 中文名, 检验结果, 单位, 结果参考, 结果标志 From 诊治所见项目, 检验普通结果 Where 诊治所见项目.Id = 检验项目id And 检验普通结果.检验标本id In (Select Id From 检验标本记录 Where 医嘱id =" + sid + " And 打印次数 In (0, 1, Null)) Order By 排列序号"; OracleDataAdapter da = new OracleDataAdapter(str1, conn); da.Fill(ds, "检验普通结果"); da.Fill(ds, "诊治所见项目"); //string str1 = "Select Distinct 排列序号, 中文名, 检验结果, 单位, 结果参考, 结果标志 From 诊治所见项目, 检验普通结果 Where 诊治所见项目.Id = 检验项目id And 检验普通结果.检验标本id In (Select Id From 检验标本记录 Where 医嘱id =" + sid + " And 打印次数 In (0, 1, Null)) Order By 排列序号"; // OracleDataAdapter da = new OracleDataAdapter(str1, conn); }
不好意思,这是我的代码,就是这里遍历后什么内容都不显示,是有什么问题吗?
o断个点看数据是否查询出来,如果有那应该是绑定数据源的写法有问题
MessageBox有显示数据,绑定数据源应该没错的,因为把
string str1 = "Select Distinct 排列序号, 中文名, 检验结果, 单位, 结果参考, 结果标志 From 诊治所见项目, 检验普通结果 Where 诊治所见项目.Id = 检验项目id And 检验普通结果.检验标本id In (Select Id From 检验标本记录 Where 医嘱id =" + sid + " And 打印次数 In (0, 1, Null)) Order By 排列序号"; OracleDataAdapter da = new OracleDataAdapter(str1, conn); da.Fill(ds, "检验普通结果"); da.Fill(ds, "诊治所见项目");
放到foreach外面 的话可以显示数据,
而且我想要的效果是遍历检验标本项目里面的id,把id号传给sql语句,再把查询结果填充到后面的检验标本记录和诊治所见结果这两个表
@叮叮722:
在循环里确认
da.Fill(ds, "检验普通结果");
da.Fill(ds, "诊治所见项目"); 这两句是否会有结果,问题应该不出在报表,而是数据源
@Zery: 这个要怎么确认?我不怎么会,可以教一下吗?不介意的话就Q聊吧,方便一点。