While(datareader.Read())能不能嵌套啊?

yuan_168 2007-05-24 04:00:25
请问有哪位大虾能指点一下小弟,谢谢!!每次都提示连接已打开,注释掉了又提示DataReader没有可用的连接,我都快疯了!!!

//第三行--评价大项
//查询当前评价标准下对应的评价大项序号及内容--//
//定义查询评价大项信息的T_SQL语句
string strPJDXInfo = "SELECT LargeItem_No,LargeItem_Name FROM ScoreItme_Large WHERE ScoreStandard_ID="+iPJBZID+" ORDER BY LargeSerial_ID,LargeItem_Sort";
//实例化数据库命令对象
OleCmd = new OleDbCommand(strPJDXInfo,OleCon);
//打开连接
OleCmd.Connection.Open();
//实例化数据读取对象
OleDr = OleCmd.ExecuteReader();
//循环读取数据库中评价大项表中的评价大项序号和名称
while(OleDr.Read())
{
//定义存储评价大项序号的字符串变量
strPJDXNo = OleDr.GetString(0); //获取评价大项序号记录
//定义存储评价大项名称的字符串变量
strPJDXName = OleDr.GetString(1);//获取评价大项名称记录
//输出评价大项信息
Response.Write("<tr>");
Response.Write("<td width=50px align=center><font size=2>"+strPJDXNo+"</font></td>");
Response.Write("<td width=90px align=center><font size=2>"+strPJDXName+"</font></td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("</tr>");//结束第三行--评价大项
//第四行--评价中项
//查询当前评价标准下对应的评价中项序号及内容--//
//定义查询评价中项信息的T_SQL语句
string strPJZXInfo = "SELECT MiddleItem_No,MiddleItem_Name,Standard_Score FROM ScoreItme_Middle WHERE ScoreStandard_ID="+iPJBZID+" ORDER BY MiddleSerial_ID,MiddleItem_No";
//实例化数据库命令对象
OleCmd = new OleDbCommand(strPJZXInfo,OleCon);
//打开连接
OleCmd.Connection.Open();
//实例化数据读取对象
OleDr = OleCmd.ExecuteReader();
//循环读取数据库中评价中项表中的评价中项序号、名称及标准分值
while(OleDr.Read())
{
//定义存储评价中项序号的整型变量
iPJZXNo = OleDr.GetInt32(0); //获取评价中项序号记录
//定义存储评价中项名称的字符串变量
strPJZXName = OleDr.GetString(1);//获取评价中项名称记录
//定义存储评价中项标准分值的字符串变量
//strPJBZFZ = OleDr.GetString(2);//获取评价中项标准分值记录
//输出评价中项信息
Response.Write("<tr>");
Response.Write("<td width=50px align=center><font size=2>"+iPJZXNo+"</font></td>");
Response.Write("<td width=90px align=center><font size=2>"+strPJZXName+"</font></td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("<td> </td>");
Response.Write("</tr>");//结束第四行--评价中项
}
//关闭数据库读取对象
OleDr.Close();
//关闭连接
OleCmd.Connection.Close();
}
//关闭数据库读取对象
OleDr.Close();
//关闭连接
OleCmd.Connection.Close();
...全文
384 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
interboy 2007-05-24
  • 打赏
  • 举报
回复
简单一点就是这样了!
conn.open();
while(dr1.read())
{
dr2.read();
}
conn.close();
我觉得这样应该可以,不过没试过!
babyrockxray 2007-05-24
  • 打赏
  • 举报
回复
不行
在第一个循环里面
要重新申请一个connection和datareader
interboy 2007-05-24
  • 打赏
  • 举报
回复
你一个连接已经打开了,怎么还打开呢?
我觉得你直接去操作就可以了,第二个连接不用打开了!
ckpckphaha 2007-05-24
  • 打赏
  • 举报
回复
不会,帮你帝

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧