public SqlEditor() { InitializeComponent(); feilmeldingTxt.ForeColor = Color.Red; LagreXmlBtn.Hide(); LagreCsvBtn.Hide(); }
private void SqlBtn_Click(object sender, EventArgs e) { Database db = new Database(); String sql = sqlTxt.Text; String[] fyOrd = { "DELETE", "TRUNCATE", "DROP", "INSERT", "UPDATE", "ALTER", "--", "FORMLOGIN", "GRANT", "REVOKE", "CALL" }; /* * Dette arrayet inneholder ord som ikke kan godtas i SQL spørringer pga av sikkerhet. * * I foreachen under blir SQL spørringen til brukeren sammenlignet opp * mot array med fyOrd ved hjelp av Contains() metoden. Vi har også brukt * toUpper for at ordene som sammenlignes begge er i store bokstaver */ foreach (string ord in fyOrd) { if (sql.ToUpperInvariant().Contains(ord.ToString())) { feilmeldingTxt.Text = "SQL spørringen inneholder ulovlige ord."; return; } } //Fjerner feilmelding hvis det finnes feilmeldingTxt.Text = ""; try { db.OpenConnection(); var da = db.DataAdapter(sql); //Kaller på egenlagd metode i Database.cs som returnerer dataadapter MySqlCommandBuilder sqlBygger = new MySqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds); //Data adapteret fyller på datasetet sqlDatagrid.DataSource = ds.Tables[0]; //Datasetet fyller på datagriden db.CloseConnection(); LagreXmlBtn.Show(); LagreCsvBtn.Show(); } catch (Exception ex) { feilmeldingTxt.Text = "Spørring feilet, pass på at du har skrevet korrekt syntaks"; Console.WriteLine(ex); //cw for debugging } }