C# Mysql chyba v kodu.
Dobrý den, při programování jsem narazil na takovou věc.
Jelikož jsem si kus kodu překopíroval z starého projektu tak asi špatně.
Mam vytvořenou tabulku FreeLance_KEYS
Klic, Status (obě jsou Text).
v Programu:
MySqlCommand prikaz = new MySqlCommand();
MySqlDataReader cteni;
MySqlConnection pripojeni = new MySqlConnection("Database=xx;DataSource=xx;UserId=xx;Password=xx");
pripojeni.Open();
prikaz.CommandText = "SELECT Status FROM FreeLance_KEYS WHERE klic = '" + keyBox.Text + "'";
prikaz.Connection = pripojeni;
cteni = prikaz.ExecuteReader();
while (cteni.Read())
{
if(cteni["Status"].ToString().Contains("Pouzito"))
{
}
else if (cteni["Status"].ToString().Contains("Volny"))
{
prikaz.CommandText = "UPDATE status FROM FreeLance_KEYS where klic= '" + keyBox.Text + "' set Pouzito";
}
}
s Update dělám poprvé, snad jsem to správně napsal
Teď když se podívám do databáze tak tam ' Pouzito ' nevidím.
Je tam hodnota Volny. Co dělám špatně ?
Ten příkaz taky musíš provést:
Celý ten kód je nesmyslný, proč tam máš vůbec ten SELECT? A zjisti si správnou syntaxi příkazu UPDATE.
Ten select tak je aby to vybralo ten status tam kde zadal ten klíč.
Ale na to ho vůbec nepotřebuješ.
A víš co je SQL Injection?
SQL Injection nevím co je.
Já spíš preferuju Javu, v C# mam hodně málo znalostí včetně MySQL.
prikaz.ExecuteNonQuery();
There is already an open DataReader associated with this Connection which must be closed first.
Nemůžu dřív zavřít reader než updatuju tu tabulku. Jak to mam tedy udělat ?
SQL Injection nesouvisí s žádným programovacím jazykem. A tenhle kód je nesmyslný i v Javě.