示例#1
0
 public SqlEditor()
 {
     InitializeComponent();
     feilmeldingTxt.ForeColor = Color.Red;
     LagreXmlBtn.Hide();
     LagreCsvBtn.Hide();
 }
示例#2
0
        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
            }
        }