Witam na pokładzie VS2012+Access,
Mam procedurę sprawdzającą MAX(ID):
int MaxId()
{
try
{
OleDbConnection oConn = new OleDbConnection();
oConn.ConnectionString = connDB;
OleDbCommand oCmd = new OleDbCommand();
oCmd.Connection = oConn;
oCmd.CommandType = CommandType.Text;
oCmd.CommandText = "SELECT MAX(ID) FROM TABLICA";
oConn.Open();
int i = -2;
// tu potrzebny warunek, ale jaki ???
i = (int)oCmd.ExecuteScalar(); // błąd rzutowania, gdy pusta tablica
return i;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
return -1;
}
Jeśli tablica jest pusta to błąd InvalidCastException.
Czy można temu zapobiec jakimś prostym if’em lub o... a może jakieś inne zapytanie... ?
Dziękuję i pozdrawiam
P.S.
Na razie mam pomysł tylko na wykonanie wcześniej procedury jak powyższa, ale z Count(*) i jeśli 0, to pomijam MAX(ID).