通常情况下,我们会使用到多个的嵌套使用,诸如下面的使用:
SqlDataReader read1,read2;
while (read1.read())
{
while (read2.read())
{
}
}
但是在实际的应用中,上面的用法会导致错误,因为CN连接是同一个连接,如果关闭了其中的任何一个SqlDataReader,都会导致另外的一个出错误。
因此,如果你非要这样来使用,有这样的需求,可以使用另外的方法来期待上面的方法,下面提供大家一种方法,也就是说,使用单个SqlDataReader配合SqlCommand来完成。
SqlCommand myComm=new SqlCommand(sqlflag,myConn);
SqlDataReader dr=myComm.ExecuteReader();
while(dr.Read()){
Tuser=dr.GetString(1);
CTAmount=dr.GetInt32(2);
for(i=0,i<CTAmount;i++) {
String insertCmd = "insert into ControlT (@ctuser, @ctno)";
SqlCommand myCommand = new SqlCommand(insertCmd, myConn);
myCommand.Parameters.Add(new SqlParameter("@ctuser", SqlDbType.NVarChar, 50));
myCommand.Parameters["@Id"].Value = Tuser
myCommand.Parameters.Add(new SqlParameter("@ctno", SqlDbType.NVarChar, 50));
myCommand.Parameters["@Id"].Value = ctno
myCommand.ExecuteNonQuery();
}
}
dr.Close();