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();
...全文
337 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
不会,帮你帝
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2007-05-24 04:00
社区公告
暂无公告