CloseConnection: When the command is done executing, both the DataReader and the connection are closed.不知道楼主是怎么测试的。 举个例子。System.Collections.ArrayList al = new System.Collections.ArrayList();using (OracleConnection conn = new OracleConnection()) { conn.ConnectionString = "Data Source=**;User ID=**;Password=**"; OracleCommand cmd = new OracleCommand(); cmd.CommandText = "select * from TABLE where ***"; cmd.Connection = conn; conn.Open(); OracleDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); if (dr.HasRows) { foreach (System.Data.Common.DbDataRecord ddr in dr) { al.Add(ddr); } } MessageBox.Show(conn.State.ToString()); //这里输出Closed,说明连接已经关闭 } // 自动调用conn.Dispose()。 dataGridView1.DataSource = al;楼主能不能把你的测试代码贴出来?
你应该关闭datareader后测试
举个例子。System.Collections.ArrayList al = new System.Collections.ArrayList();using (OracleConnection conn = new OracleConnection())
{
conn.ConnectionString = "Data Source=**;User ID=**;Password=**"; OracleCommand cmd = new OracleCommand();
cmd.CommandText = "select * from TABLE where ***";
cmd.Connection = conn; conn.Open(); OracleDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); if (dr.HasRows)
{
foreach (System.Data.Common.DbDataRecord ddr in dr)
{
al.Add(ddr);
}
}
MessageBox.Show(conn.State.ToString()); //这里输出Closed,说明连接已经关闭
} // 自动调用conn.Dispose()。
dataGridView1.DataSource = al;楼主能不能把你的测试代码贴出来?