Nie dodaje mi rekordu do tabeli w bazie danych mySQL

0

Witajcie. Posiadam tabelę widoczną na zdjęciu z 1 rekordem dodanym z poziomu bazy.
ce91db32e0.png
Teraz próbuję dodać rekord z poziomu kodu programu. Połączenie z bazą danych jest właściwe, jednak muszę jakoś niewłaściwie układać zapytanie. Możecie zerknąć na kod i wytłumaczyć mi co jest nie tak?

try
            {
                mysql.Open();

                string command = "INSERT INTO `Account`(`Login`, `Password`, `DateOfCreate`, `PrzywilejeID`, `Zarejestrowany`) VALUES (" + Login + "," + Password + "," + DateTime.Today.ToString() + "," + PrivilegesID_int.ToString() + "," + NowRegister_int.ToString() + ")";
                
                using (MySqlCommand cmdsel = new MySqlCommand(command, mysql))
                {
                    int row = cmdsel.ExecuteNonQuery();
                }
                
                mdw.Close();
            } 

Kolumna ID w bazie danych jest zaznaczona na AUTO_INCREMENT, więc w kodzie całkowicie ją pominąłem. Dla sprawdzenia metodą prób i błędów spróbowałem dodać rekord określając kolumnę ID - bezskutecznie.

0

Login i Password musisz wziąć w apostrofy

0

Poza tym robisz to nieprawidłowo, bo Twój kod jest podatny na SQL Injection. Przekaż dane jako parametry zapytania albo w ogole zainteresuj się jakimś mechanizmem ORM.

0

@Dżery niestety to nie pomaga.
@grzesiek51114 na razie chcę ogarnąć takie podstawy podstaw. Niedawno dopiero udało mi się ogarnąć jak tworzyć mniej więcej zapytania i teraz testuję wszystko metodą prób i błędów wykorzystując kilka poradników i wpisów na forum ;) Potem na pewno spojrzę co to jest.

Macie jakiś pomysł co do aktualnego kodu?

public static void DB_AccountCreateNew(string Login, string Password, int PrivilegesID, int NowRegister) 

Mam takie zmienne i muszę je umieścić w bazie danych.

string command = "INSERT INTO `Account`(`Login`, `Password`, `DateOfCreate`, `PrzywilejeID`, `Zarejestrowany`) VALUES (" + Login + "," + Password + "," + DateTime.Today.ToString() + "," + PrivilegesID_int.ToString() + "," + NowRegister_int.ToString() + ")"; 

Mówiąc o apostrofach masz na myśli:

"VALUES (`" + Login + "`,`" 

?

Coś takiego tez nie działa:

string command = "INSERT INTO `Account`(`ID`, `Login`, `Password`, `DateOfCreate`, `PrzywilejeID`, `Zarejestrowany`) VALUES (`2`,`jakiestamkonto`,`jakiestamhaslo`,`0000-00-00 00:00:00`,`1`,`0`)"; 

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