Wypełnienie TextBoxa danymi z MySQL

0

Witam

Mam następujący problem. Chciałbym pobrać z bazy danych MySQL z jednej tabeli imie, nazwisko i umieścić w TextBox-ie. W bazie danych mam procedurę pobierającą dane o następującej strukturze:

CREATE DEFINER=`test`@`%` PROCEDURE `pracownik`(idUzytkownika INT)
BEGIN
	SELECT CONCAT(pracownicy.imie, ' ', pracownicy.nazwisko)
		FROM pracownicy
			INNER JOIN uzytkownicy 
				ON pracownicy.idPrac = uzytkownicy.idUzytk
				AND uzytkownicy.idUzytk = idUzytkownika;
END

Poniżej funkcja z której korzystam:

Void pracownik(int idUzytkownika, System::Windows::Forms::TextBox^ pole, String^ konfiguracja)
{
	MySqlConnection^ polaczenie = gcnew MySqlConnection(konfiguracja);
	polaczenie->Open();

	MySqlCommand^ zapytanie = gcnew MySqlCommand("CALL pracownik(" + idUzytkownika + ")", polaczenie);

	try
	{
		
		MySqlDataReader^ dane = zapytanie->ExecuteReader();
		dane->Read();

		if (dane->HasRows)
		{
			pole->Text = ???;
		}


	}
	catch (Exception^ komunikat)
	{
		MessageBox::Show(komunikat->Message);
	}

	polaczenie->Close();

}

Nie wiem jak to zapisać, żeby zwróciło mi textboxie "Imie Nazwisko". Procedura sama w sobie działa bez problemu. Testowana w workbenchu.

1

Wystarczy podłubać w dokumentacji
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-sql-command.html
https://dev.mysql.com/doc/dev/connector-net/8.0/html/M_MySql_Data_MySqlClient_MySqlDataReader_GetString.htm

if (dane->Read()) {
    pole->Text = dane->GetString(0);
}

FYI to jest źle napisane, bo masz pomieszane cześć UI z bazą danych i logiką biznesową. Niby działa, ale utrzymanie tego to będzie koszmar.

0

Dziękuję działa. Co do źle napisanego, to się zgadzam, ale na razie się uczę (stąd takie trywialne problemy). Chętnie posłucham wszelkich rad.

1
MySqlCommand^ zapytanie = gcnew MySqlCommand("CALL pracownik(" + idUzytkownika + ")", polaczenie);

Takie rzeczy należy załatwiać za pomocą parametrów, bo wejdzie Ci to w nawyk i skończy się na SQL Injection.

0

Na pewno będę się stosował. Jak pisałem dopiero się uczę. Przerabiam kurs wideo Aplikacje w VC++, Visual Studio C++ Aplikacje Bazodanowa, Pasja Informatyki - C++, książki Pana Gręgosza (zresztą bardzo miły człowiek, odpisałam mi na maila jak miałem wątpliwości co do treści zawartej w jego książce) i parę innych, ale na razie jestem amatorem. Dziękuję za rady.

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