我有下面的代码,我得到了异常
“已经有一个打开的 DataReader 与此 Connection 关联,必须先关闭它”。
我正在为这个项目使用 Microsoft Visual C# 2010 Express 和 Microsoft Access 2007。
namespace Database1
{
public partial class Form1 : Form
{
OleDbConnection connection;
public void connect()
{
connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\PBName1.accdb;Data Source=C:\Users\bvino_000\Downloads\PBName1.accdb");
connection.Open();
}
public void close_connection()
{
connection.Close();
}
public Form1()
{
InitializeComponent();
connect();
OleDbDataReader reader = null;
OleDbCommand command = new OleDbCommand("SELECT * from PBInfo", connection);
reader = command.ExecuteReader();
while (reader.Read())
{
listBox1.Items.Add(reader[1].ToString());
}
close_connection();
}
private void button1_Click(object sender, EventArgs e)
{
listBox2.Items.Add(listBox1.SelectedItem);
string s = "";
s = listBox1.SelectedItem.ToString();
connect();
string sql = "SELECT PBSize FROM PBInfo where PBName=" + " '" + s + "' ";
try
{
OleDbDataReader reader = null;
OleDbCommand command = new OleDbCommand(sql, connection);
reader = command.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
command.ExecuteReader();
}
reader.Close();
command.Dispose();
close_connection();
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
label2.Text = command.ExecuteReader().ToString();
listBox1.Items.Remove(listBox1.SelectedItem);
}
catch(Exception ex)
{
ex.GetBaseException();
}
finally
{
close_connection();
}
}
} }