如何复制一个SqlDataReader
public SqlDataReader sdr;
using (SqlConnection conn = new SqlConnection(conn))
{
System.Data.DataTable dt = new System.Data.DataTable( "dt ");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from xiuxian where id= " + id;
SqlDataReader sdr0 = cmd.ExecuteReader();
sdr=sdr0;
//......
}
上述代码中sdr是一个全局变量,用来保存一个SqlDataReader对象,在using块中取得创建了一个SqlDataReader临时对象sdr0,由于sdr0的生命期指在using块内,
切sdr的得到的是引用值,sdr在using块外访问时就会出错
问题:如何复制一个SqlDataReader对象象,也就是怎么得到一个sdr0的副本
------解决方案--------------------按你的要求是不能用using 来管理SqlConnection了.
因为出了using块后SqlConnection换去作用,SqlDataReader 也就变的不可以用了.
你可以在使用好SqlDataReader 后再去手动的关闭SqlConnection以保证SqlDataReader 的正常使用:
SqlConnection conn = new SqlConnection(conn);
conn.Open();
System.Data.DataTable dt = new System.Data.DataTable( "dt ");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from xiuxian where id= " + id;
SqlDataReader sdr0 = cmd.ExecuteReader();
//......
sdr0.Close();
conn.Close();