sikre SQL streng
Jeg har en class der indsætter i en database, og denne class, skal sikres mod at der i felter indtastes ' eller , eller andre tegn, der ødelægger queryenJeg regner med at det kun er de enkelte felter i k, der skal gennemsøges og udskiftes tegn i, men jeg kan ikke lige overskue hvordan?
her er class'en
public void Skriv_mySQL()
{
CDataBase Con_info = new CDataBase();
ArrayList Info = Con_info.DB_Info();
int Antal = Info.Count;
string MyConString = null;
//Connection string for Connector/ODBC 3.51
MyConString = "DRIVER=" + Info[0] +
";SERVER=" + Info[1] +
";DATABASE=" + Info[2] +
";UID=" + Info[3] +
";PASSWORD=" + Info[4] +
";OPTION=" + Info[5] +
";";
//Connect to MySQL using Connector/ODBC
OdbcConnection MyConnection = new OdbcConnection(MyConString);
MyConnection.Open();
OdbcCommand MyCommand = new OdbcCommand("DROP TABLE liste", MyConnection);
MyCommand.ExecuteNonQuery();
MyCommand.CommandText = "CREATE TABLE `liste` (`auto_nr` bigint(20) NOT NULL auto_increment, `id` bigint(20) NOT NULL default '0', `b_dato` varchar(100) default '', `b_tid` varchar(100) default '', `fornavn` varchar(100) default '', `efternavn` varchar(100) default '', `adresse` varchar(100) default '', `postnr` varchar(100) default '', `byen` varchar(100) default '', `telefon` varchar(100) default '', `e_mail` varchar(100) default '', `nyt_kat` varchar(100) default '', PRIMARY KEY (`auto_nr`)) TYPE=MyISAM;";
MyCommand.ExecuteNonQuery();
string MinInsertSQL;
foreach(CKunde k in arrKunder)
{
MinInsertSQL = "INSERT INTO liste(id, b_dato, b_tid, fornavn, efternavn, adresse, postnr, byen, telefon, e_mail, nyt_kat) VALUES('" + k.ID + "', '" + k.B_dato + "', '" + k.B_tid + "', '" + k.ForNavn + "', '" + k.EfterNavn + "', '" + k.Adresse + "', '" + k.Postnr + "', '" + k.By + "', '" + k.Telefon + "', '" + k.Email + "', '" + k.Nyt_Kat + "')";
MyCommand.CommandText = MinInsertSQL;
MyCommand.ExecuteNonQuery();
}
MyConnection.Close();
}
