Błąd komendy przy połączeniu c++ z sql

0

Witam, mam proogram do robienia statystyk z meczu i po kliknięciu buttona chce aby w bazie danych w danej kolumnie zrobiła się inkrementacja lecz gdy klikam i patrzę w tabelę to nic się nie dodaje. Jakaś rada co zmienić?

public: int selected_player_number() {
		
		String^ string_zawodnik_id;
		if (radioButton1->Checked) {
			string_zawodnik_id = comboBox1->SelectedItem->ToString();
			zawodnik_id = int::Parse(PrzygotujString(string_zawodnik_id));
		}
		else if (radioButton2->Checked) {
			string_zawodnik_id = comboBox2->SelectedItem->ToString();
			zawodnik_id = int::Parse(PrzygotujString(string_zawodnik_id));
		}
		else if (radioButton3->Checked) {
			string_zawodnik_id = comboBox3->SelectedItem->ToString();
			zawodnik_id = int::Parse(PrzygotujString(string_zawodnik_id));
		}
		else if (radioButton4->Checked) {
			string_zawodnik_id = comboBox4->SelectedItem->ToString();
			zawodnik_id = int::Parse(PrzygotujString(string_zawodnik_id));
		}
		else if (radioButton5->Checked) {
			string_zawodnik_id = comboBox5->SelectedItem->ToString();
			zawodnik_id = int::Parse(PrzygotujString(string_zawodnik_id));
		}
		return zawodnik_id;
	}

		
	private: System::Void reb_a_Click(System::Object^  sender, System::EventArgs^  e) {
		


		try {
			selected_player_number();
			String^ constring = "Data Source=DTLEGION;Initial Catalog=tab_zawodnicy;Integrated Security=True";
			SqlConnection^ conDataBase = gcnew SqlConnection(constring);
			SqlCommand^ cmdDataBase = gcnew SqlCommand("UPDATE tabela_zawodnicy SET [zbiórka atak]=[zbiórka atak] + 1 WHERE numer = '"+selected_player_number()+"' ;", conDataBase);
			
			SqlDataReader^ myReader;
		
		}
		catch (Exception^ex)
		{
			MessageBox::Show(ex->Message, "");
		}
0

W bazie danych przy tworzeniu tabeli w polu które chcesz inkrementowac dodaj auto increment a w programie przy insercie przekazuj nulla zamiast wartości w tym polu

0

Zamiast robić ify powinieneś zrobić pętlę zbierającą wszystkie radio buttony i dać pętlę:
Bo jak bedziesz mial 30 radioboxow to co kazdy bedziesz dodawal jako if ? xD

String^ string_zawodnik_id;

LOOP
        if (radioButton1->Checked) {
            string_zawodnik_id = comboBox1->SelectedItem->ToString();
            zawodnik_id = int::Parse(PrzygotujString(string_zawodnik_id));
        }
END

A co jesli nie bedzie u ciebie zadnego zaznaczonego radio ?

return zawodnik_id;

to zwroci ci blad bo nie ma ustawionej danej ani zainicjiowanej w funkcji.

A potem dopiero zajmij sie baza danych

0

Sprawdź co zwraca selected_player_number

0
vpiotr napisał(a):

Sprawdź co zwraca selected_player_number

Zwraca dobrze - numer zawodnika

1 użytkowników online, w tym zalogowanych: 0, gości: 1