Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z SQL
Forum PHP.pl > Forum > Przedszkole
AndySheppard
Witam forumowiczów!

Mam program, który łączy się z bazą danych w której są dwie tabele "pracownicy" i "godziny". Problem polega z przyciskiem modyfikuj. Gdy chcę zmienić dane np. pracownika czy też godzin przypisanych do tego pracownika to w tabeli pracownicy zostają zmienione dane, ale natomiast w tabeli godziny zostaje dodawany cały czas nowy rekord. Chodzi o to by program modyfikował dany rekord do którego jest przypisany pracownik_id.

Przycisk modyfikuj:

  1.  
  2. private: System::Void btnPModyfikuj_Click( System::Object ^ sender, System::EventArgs ^ e ) {
  3. // modyfikacja danych uzytkownika
  4. if( txtPImie->Text->Length < 2 || txtPNazwisko->Text->Length < 3 || txtPLogin->Text->Length <= 3 ) {
  5. MessageBox::Show( "Uzupełnij dane!!!" );
  6. }
  7. else {
  8. uzytkownik_typ();
  9.  
  10. MySqlConnection ^ laczBaze = gcnew MySqlConnection( konfiguracja );
  11. MySqlCommand ^ polecenie = laczBaze->CreateCommand();
  12. MySqlTransaction ^ transakcja;
  13. laczBaze->Open();
  14.  
  15. transakcja = laczBaze->BeginTransaction( IsolationLevel::ReadCommitted );
  16.  
  17. polecenie->Connection = laczBaze;
  18.  
  19. polecenie->Transaction = transakcja;
  20.  
  21. try {
  22.  
  23. polecenie->CommandText = "SELECT * FROM godziny WHERE uzytkownik_id = " + id_rekordu + ";";
  24. MySqlDataReader ^ wynik = polecenie->ExecuteReader();
  25. wynik->Close();
  26.  
  27. polecenie->CommandText = "UPDATE uzytkownik SET imie='" + txtPImie->Text + "', nazwisko='" + txtPNazwisko->Text + "', uzytkownik_nazwa='" + txtPLogin->Text + "', pracownik=" + pracownik_typ + " WHERE uzytkownik_id = " + id_rekordu + ";";
  28. polecenie->ExecuteNonQuery();
  29.  
  30. if( wynik->HasRows == true && chbPPracownik->Checked == true ) {
  31. polecenie->CommandText = "UPDATE godziny SET pon_od = '" + txtP1p->Text + "', pon_do='" + txtP1k->Text + "', wt_od='" + txtP2p->Text + "', wt_do='" + txtP2k->Text + "', sr_od='" + txtP3p->Text + "', sr_do='" + txtP3k->Text + "', czw_od='" + txtP4p->Text + "', czw_do='" + txtP4k->Text + "', pt_od='" + txtP5p->Text + "', pt_do='" + txtP5k->Text + "', sob_od='" + txtP6p->Text + "', sob_do='" + txtP6k->Text + "' WHERE godziny_id=" + id_rekordu + ", uzytkownik_id=" + id_rekordu + ";";
  32. polecenie->ExecuteNonQuery();
  33. }
  34. else if( chbPPracownik->Checked == true ) {
  35. polecenie->CommandText = "INSERT INTO godziny SET uzytkownik_id=" + id_rekordu + ", pon_od = '" + txtP1p->Text + "', pon_do='" + txtP1k->Text + "', wt_od='" + txtP2p->Text + "', wt_do='" + txtP2k->Text + "', sr_od='" + txtP3p->Text + "', sr_do='" + txtP3k->Text + "', czw_od='" + txtP4p->Text + "', czw_do='" + txtP4k->Text + "', pt_od='" + txtP5p->Text + "', pt_do='" + txtP5k->Text + "', sob_od='" + txtP6p->Text + "', sob_do='" + txtP6k->Text + "';";
  36. polecenie->ExecuteNonQuery();
  37. }
  38. MessageBox::Show( "Dane uzytkownika zostały pomyślnie zmodyfikowne" );
  39. transakcja->Commit();
  40. }
  41. catch( Exception ^ komunikat ) {
  42. MessageBox::Show( komunikat->Message );
  43. transakcja->Rollback();
  44. }
  45. laczBaze->Close();
  46. }
  47.  
  48.  
  49. pokaz_siatke();
  50. }
  51.  
nospor
Problem nie ma zadnego zwiazku z mysql. Przenosze.

Problemem jest to, ze ten warunek
if( wynik->HasRows == true && chbPPracownik->Checked == true ) {

a konkretnie to
wynik->HasRows == true
nie jest prawda. Musisz sprawdzic czemu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.