Zapytanie dodające do bazy MySQL rekord zawierający dane z textBoxów

0

Witam. Mam pytanie odnośnie tego jak skonstruować zapytanie w c# aby dodawać rekordy do bazy mysql korzystając z danych wpisanych do textBox'ów. Podejrzewam, że to pytanie jest banalne ale nie jestem programistą a projekt muszę zrobić :/ no i moje poszukiwania w necie nie przyniosły skutków. Z góry dzięki za odpowiedź

w tej chwili moje zapytanie wygląda tak:

 
 string sql =  "INSERT INTO `produkty` (id_produktu, cena_detaliczna, cena_hurtowa, nazwa_produktu, rodzaj_produktu) " + "VALUES  ('3', '1', '2', 'pomidory', 'warzywa');";
 A chce by to co jest w nawiasie po VALUES było zmiennymi z wartościami wpisanymi przez użytkownika
1

Najprościej - coś w stylu:

string sql = String.Format("INSERT INTO `produkty` (id_produktu, cena_detaliczna, cena_hurtowa, nazwa_produktu, rodzaj_produktu) VALUES  ('{0}', '{1}', '{2}', '{3}', '{4}');", textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text);

Ale nie jest to specjalnie bezpieczne - lepsze będą parametrized query: http://stackoverflow.com/a/652999

0

Super. Działa :) Dzięki wielkie. Pół dnia nad tym siedziałem

A żeby id było w c# auto_increment to musi być pętla?

chodzi mi o to żeby po wprowadzeniu jednego z produktów id zmieniało się o 1 ciągle. Wybacz za "lamerskie" pytania ale zielony jestem w tym

2

Jeżeli ID w bazie danych jest ustawione jako "auto increment" to możesz go pominąć w swoim zapytaniu, DB sama wpisze odpowiednią wartość.

1

Wszystko już działa i jest super. AlfaLeporis miałeś rację. Zrobiłem wg Twojej wskazówki i jest ok. Serdecznie dziękuje za wszelką pomoc

0

Mam jeszcze pytanie odnośnie tych zapytań. Jak skonstruować zapytanie do usuwania rekordów ale tych, które użytkownik określi w textBox'ie? przykładowo jak chce usunąć jakiegoś klienta z bazy i podaje w textBox jego imię i nazwisko po czym program go usunie. Próbowałem coś takiego ale to nie działa:

 string sql1 = String.Format("DELETE FROM `klient`  WHERE Imie={'0'} AND Nazwisko={'1'};", textBox1, textBox2);
1

Poprawcie mnie jeśli się mylę ale nie powinno wyglądać to tak?

string sql1 = String.Format("DELETE FROM `klient`  WHERE Imie='{0}' AND Nazwisko='{1}';", textBox1, textBox2);

A, i jeszcze jedno. To textBox1 i textBox2 to oczywiście obiekty typu string?

0

Tak textBox1 i textBox2 to obiekty typu string. Przed momentem metodą prób i błędów znalazłem rozwiązanie. Próbowałem chyba ze sto razy różnych kombinacji. W Twoim kodzie zabrakło jedynie nawiasów. Mi zadziałał ten kod:

 string sql1 = String.Format("DELETE FROM `klient` WHERE (Imie = '{0}') AND ( Nazwisko= '{1}') AND (Firma= '{2}');", textBox1.Text, textBox2.Text, textBox3.Text); 

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