Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    Inserimento dati in database

    ho creato una classe per effettuare l'inserimento nel db:
    codice:
        public class Inserimento
        {
            private int entrate;
            private int uscite;
            private string causale;
    
            public Inserimento(int entrate, int uscite, string causale)
            {
                this.entrate = entrate;
                this.uscite = uscite;
                this.causale = causale;
            }
            
            public bool inserisci()
            {
                string sql = "INSERT INTO movimenti (entrate,uscite,causale,data) VALUES(" + this.entrate + "," + this.uscite + ",'" + this.causale + "', curdate())";
                MySqlConnection conn = null;
                MySqlCommand cmd = null;
                try 
                {
                    conn = Connessione.getConnection();
                    cmd = new MySqlCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                    return true;
                }
                catch (MySqlException e)
                {
                    Console.Write(e.Message);
                    return false;
                }
            }
        }
    la pagina è questa:
    codice:
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    
        <asp:TextBox ID="TextBox4" runat="server" Enabled="False"></asp:TextBox>
    
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
    ho pensato di inserire il tutto tramite evento messo sul bottone.
    ho creato l'evento e vorrei fare qualcosa del genere:
    codice:
            protected void Button1_Click(object sender, EventArgs e)
            {
                Inserisci movimenti = new Inserisci(TextBox1.get);
            }
    in pratica vorrei richiamare il codice per l'inserimento e inserire quello che c'è scritto.
    come ispirazione ho preso il codice che uso in un frame di java, ed infatti nn funge.
    solo che nn so come fare.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    La classe di inserimento mi sembra corretta, ma vedo un paio di incongruenze:

    1) il comando curdate() io non lo conosco... magari è ignoranza, ma potrebbe essere che sia una funzione generata ad hoc che non hai riportato.

    2) Un oggetto di tipo inserimento richiede tre parametri per essere istanziato, dunque:
    codice:
    Inserisci movimento = New Inserisci(parametro1,parametro2,parametro3)
    Poi suppongo che i tre parametri vengano presi dalle textbox della tua pagina (che sono 4..?) alle quali magari è il caso di dare un ID sensato (txtEntrate,txtUscite,txtCausale)
    Ricordati che per ottenere il contenuto di una textbox devi usare la proprietà text:
    codice:
    txtNomeTextBox.Text
    e non .get

  3. #3
    eccomi, faccio un pò di chiarezza.
    1- avevo pensato a .get solo come esempio e perchè si usa in java; qua nn avevo idea ma adesso ho capito
    2- curdate() è funziona mysql che inserisce automaticamente la data corrente nel campo date; la uso sia in java che php e volevo vedere se anche qua funziona.
    3- la quarta textbox nn serve a nulla; ci ho fatto solo l'esperimento di calcolare la data e stamparcela dentro al caricamento pagina.

    detto ciò ecco quello che ho scritto:
    codice:
    Matteo.Inserimento movimento = new Matteo.Inserimento(txtEntrate.Text,txtUscite.Text,txtCausale.Text);
    solo che mi da questi tre errori:
    Error 1 The best overloaded method match for 'Matteo.Inserimento.Inserimento(int, int, string)' has some invalid arguments C:\Documents and Settings\Administrator\Documenti\Visual Studio 2010\Projects\Matteo\Matteo\Default.aspx.cs 19 44 Matteo
    Error 2 Argument 1: cannot convert from 'string' to 'int' C:\Documents and Settings\Administrator\Documenti\Visual Studio 2010\Projects\Matteo\Matteo\Default.aspx.cs 19 67 Matteo
    Error 3 Argument 2: cannot convert from 'string' to 'int' C:\Documents and Settings\Administrator\Documenti\Visual Studio 2010\Projects\Matteo\Matteo\Default.aspx.cs 19 83 Matteo

    forse devo fare il parsing di entrate e uscite che sono int??

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Sembra di sì..
    non conoscevo la funzione curdate() di mysql, php e java... io uso: System.DateTime.Today.Date

  5. #5
    quindi tu la query la faresti così:
    codice:
    string sql = "INSERT INTO movimenti (entrate,uscite,causale,data) VALUES(" + this.entrate + "," + this.uscite + ",'" + this.causale + "', System.DateTime.Today.Date)";
    il parse l'ho fatto così e visto che nn da errori penso vada bene:
    codice:
    Matteo.Inserimento movimento = new Matteo.Inserimento(int.Parse(txtEntrate.Text.ToString()), int.Parse(txtUscite.Text.ToString()), txtCausale.Text);

  6. #6
    probabilmente ho omesso qualcosa io nell'evento, ma quando clicco sul bottone, dopoe aver riempito il form, nn succede nulla.
    la pagina si ricarica ma le textbox rimangono piene.
    posto l'evento:
    codice:
            protected void Button1_Click(object sender, EventArgs e)
            {
                Matteo.Inserimento movimento = new Matteo.Inserimento(int.Parse(txtEntrate.Text.ToString()), int.Parse(txtUscite.Text.ToString()), txtCausale.Text);
    
            }

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Perchè al click semplicemente crei un oggetto, per poi eseguire il codice che inserisci devi aggiungere:

    movimento.inserisci()

    e se è tutto corretto ti dovrebbe fare l'inserimento.

    Per essere più precisi, l'ideale sarebbe:

    if (movimento.inserisci())
    /fai qualcosa che ti avvisi che l'inserimento è avvenuto con successo
    Else
    /se torna false avvisa che qualcosa è andato storto

  8. #8
    e rieccomi.
    si hai ragione nn ci avevo pensato.
    cmq ho provato a mettere l'if come dici te, ma mi restituisce un errore:
    Error 1 'Matteo.movimenti' does not contain a definition for 'inserisci' C:\Documents and Settings\Administrator\Documenti\Visual Studio 2010\Projects\Matteo\Matteo\Default.aspx.cs 19 27 Matteo

    anche se nn capisco perchè visto che il metodo inserisci c'è.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    mmh, io nell'errore vedo che c'è scritto "Matteo.movimenti", l'oggetto che hai creato si chiama movimenti o movimento?

  10. #10
    l'oggetto si chiama movimento ma visual studio continua a darmi movimenti che nn so neanche da dove lo tira fuori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.