I have below code and I am getting exception
"There is already an open DataReader associated with this Connection which must be closed first".
I am using Microsoft Visual C# 2010 Express and Microsoft Access 2007 for this project.
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();
}
}
} }