Salve ragazzi, ho un problema di restituzione valori, ecco il codice:
OleDbConnection ^connection = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Provider=Microsoft.ACE.OLEDB.12.0;Data Source=database1.accdb;Persist Security Info=False;");
connection->Open(); //apro la connessione con il db
//seleziono id pratiche
OleDbCommand ^cmd = gcnew OleDbCommand("SELECT ID_PRATICHE " + "FROM APPARTIENE", connection);
OleDbDataReader ^ read = cmd->ExecuteReader();
flag = 0;
MessageBox::Show ("data: "+ read->GetValue(0));
while (read->Read() && !flag) {
//controllo se la pratica esiste nel database
if (String::Compare(this->id_pratica_del->Text, read->ToString())==0) {
OleDbCommand ^cmd1 = gcnew OleDbCommand("DELETE FROM APPARTIENE " + "WHERE ID_PRATICHE = '" + this->id_pratica_del->Text + "' ; ", connection);
cmd1->ExecuteNonQuery();
OleDbCommand ^cmd2 = gcnew OleDbCommand("DELETE FROM DEMOLI " + "WHERE NPRATICA1 = '" + this->id_pratica_del->Text + "' ; ", connection);
cmd2->ExecuteNonQuery();
flag = 1;
}
}
if(flag==1) MessageBox::Show("Record eliminato correttamente sul database");
else MessageBox::Show("Record non presente");
Ho messo la messagebox per evidenziare il fatto che il datareader è senza valori, quindi il problema è prima del while.