I’m trying to write a program using SQL and OleDB and I get an error while the Program is running.
the program first counts the number of rows in the table(access table which called ‘tblCodons’)
and storage the number as integer in j.
then the program stores all the rows (from a specific column which called ‘codonsFullName’) in comboBox1.
the code is below
I get this ERROR:System.Data.OleDb.OleDbException (0x80040E14): Invalid SQL statement;Required values’ DELETE ‘,’ INSERT ‘,’ PROCEDURE ‘,’ SELECT ‘or’ UPDATE
the code:
int j=0;
OleDbConnection conn1 = new OleDbConnection(connectionString);
conn1.Open();
string sqlCount= "SET @j= SELECT COUNT(tblCodons.codonsFullName) FROM tblCodons";
OleDbCommand counter = new OleDbCommand(sqlCount, conn1);
counter.ExecuteNonQuery();
conn1.Close();
OleDbConnection conn2 = new OleDbConnection(connectionString);
conn2.Open();
string sqlFill = "SELECT tblCodons.codonsFullName FROM tblCodons";
OleDbCommand fill = new OleDbCommand(sqlFill, conn2);
fill.ExecuteNonQuery();
OleDbDataReader dataReader = fill.ExecuteReader();
dataReader.Read();
for (int i = 0; i < j; i++)
{
comboBox1.Items.Add(dataReader.GetString(i));
}
Leaving this answer here as an explanation for fixing your code as it currently exists, but also want to point out that I recommend going with Kamal’s solution; it only queries the database once.
This line is probably your error:
change to
You’ll want to change your code to obtain the result of that first query like this: