+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: C# asp.net

  1. #1
    daniatti non è in linea Novello
    Post
    7

    Risultati in automatico da DDL a textox e da textbox a textbox

    Ciao a tutti,
    scusate, posto la mia domanda nella sezione giusta...
    Io avrei bisogno di un aiutino...

    Primo problemino:
    Io sto facendo un software per la gestione dei salari del personale. Devo inserire determinati dati in 2 textbox distinte (es. Stipendio lordo annuale e Grado di occupazione).
    o vorrei che nella textbox Stipendio ponderato mi uscisse il risultato del salario lordo*grado di occupazione.
    Cioè vorrei che quando inserisco il grado di occupazione e il salario lordo annuale automaticamente mi esce il risultato nella textox stipendio ponderato.

    Secondo problemino:
    Stessa cosa però selezionando un determinato valore in una dropdownlist (per esempio sigla), vorrei che nei 5 textbox sotto mi uscissero automaticamente i dati anagrafici di quella persona con quella sigla selezionata.

    Uso Visual Studio 2008 con C#.

    Se potete mettere il codice ve ne sarei veramente grata perché ne ho proprio bisogno!

    Grazie mille!!
    Ultima modifica di daniatti; 15-10-2008 09:31  Motivo: Cambio titolo (più specifico)

  2. #2
    dan1987 non è in linea Scolaretto
    Post
    138
    ciao, per il primo problema è sufficiente mettere sull'evento OnTextChance di entrambi i primi campi la moltiplicazione e fargli scrivere il risultato nel 3° campo.

    L'evento lo fai generare dal vs
    protected void TextBox1_OnTextChanged()
    {
    Text3.Text = Convert.ToDouble(Text1.Text)*Convert.ToDouble(Text 2.Text);
    }
    Ripeti uguale per il secondo campo.

    Per il secondo problema fai una cosa simile, inserisce il codice nell'evento onClick della listbox, così che quando clicchi sopra alla lista di si riempiono i campi.
    Se non funziona qualcosa prova a guardare la msdn.

  3. #3
    daniatti non è in linea Novello
    Post
    7

    Double

    Ti ringrazio innanzitutto per la risposta

    Mi da errore quando converto double, come mai?
    Ma é così semplice...? Pensavo che era una cosa più lunga...e poi quando sono riuscita a fare questo passo, dovrei inserire quei dati nelle tabelle del database, come posso fare per introdurre i valori delle textbox nella tabella che mi serve?

    Grazie!!!

  4. #4
    dan1987 non è in linea Scolaretto
    Post
    138
    ciao, scusa se non ti ho risposto ieri ero molto impegnato.

    per l'errore mi dovresti dire che errore è ?=

    per inserire i dati nelle tabelle devi prima crearti una storedprocedure, poi ti crei una classettina con un metodo pubblico che apre uina connessione al db, con un sqlcommand per eseguire la query.

    public static void Insert("<qui passi al metodo un oggetto con le proprieta che contengono i valori delle textbox, i valori delle proprietà li imposti sulla pagina>")
    {
    using(SqlConnection connection = new SqlConnection("<qui ci metti la stringa di connessione>"))
    {
    using (SqlCommand command = new SqlCommand())
    {
    connection.Open();
    command.Connection = connection;
    command.CommandType = CommandType.StoredProcedure;
    command.commandText = "<qui ci metti il nome della storedprocudere>";

    //ti crei i parametri per la storedprocedure
    SqlParameter parameter = new SqlParameter("<qui ci metti il nome del parametro>","<qui ci metti il tipo del parametro>");
    paramater.Value = "<qui ci metti il valore del parametro, cioè il valore di una textbox>";
    command.Parameters.Add(parameter);

    //e così via per tutti i parametri della storedprocedure
    //poi esegui la query
    command.ExecuteNonQuery();
    }

    // una storedprocedure di esempio può essere così
    CREATE StoredProcedure <nome procedure>
    @valore1 nvarchar(50),
    @valore2 nvarchar(50) ....e così via...
    AS

    insert into <nome tabella>
    (<campi>) values (<valori>)
    GO

    cmq con SqlServer la struttura base la crea lui.


    }
    }

    }

  5. #5
    daniatti non è in linea Novello
    Post
    7

    Altro errore

    Nessun problema

    Quell'errore lì l'ho risolto facendo così:

    protected void tbStipLordAnnuo_OnTextChanged(object sender, EventArgs e)
    {
    int lordo = Convert.ToInt32(tbStipLordAnnuo.Text);
    int grado = Convert.ToInt32(tbGradoOccup.Text);
    int pond = lordo * grado;
    tbStipPonderato.Text = pond.ToString();
    }

    Però ora mi da un altro errore che mi dice il formato della stringa di input non é corretto, questo succede quando la textbox stiplordoannuo o la textbox gradooccup sono vuote, praticamente quando non c'é un valore all'interno delle textbox. E la stessa cosa succede quando cancello un valore dalle due textbox. Praticamente qualsiasi operazione faccio mi esce quest'errore.

    Per la connessione alla banca dati non ho capito molto bene, un po' lunga come procedura, cioé quello che voglio io é:

    - Selezionare la sigla dalla ddl (es. dani) e poi automaticamente avere, sia nel db che nel textbox, il nome (Daniela), il cognome, data di nascita, ... di quella sigla (già introdotti i dati nel db).

    Nel db io ho una tabella Dati_anagrafici, con i seguenti campi:
    Sigla
    Nome
    Cognome
    Anno di nascita
    Anno del diploma
    Anno di assunzione
    Professione
    Funzione
    Tutte textbox, e vorrei che mi uscissero automaticamente tutte queste informazioni nelle textbox appropriate alla selezione della sigla. E che i dati vengano anche inseriti in banche dati oltre che nelle textbox.

    Non so se sono stata chiara

  6. #6
    dan1987 non è in linea Scolaretto
    Post
    138
    ciao, l'errore sulle textbox lo devi risolvere verificando il contenuto della textbox prima di andare a leggerne il contenuto:

    if (!String.IsNullOrEmpty(tbStipLordAnnuo.Text))
    {
    int lordo = Convert.ToInt32(tbStipLordAnnuo.Text);

    }
    per quanto riguarda la banca dati per l'inserimento prova come ti ho scritto prima e subito dopo ti vai a leggere i dati del db con una storedprocedure che prende in ingresso il valore selezionato nella ddl.
    (Per leggere dati dal db prova a cercare sulla msdn SqlDataReader dovresti trovarci un esempio valido).

    per collegare i dati letti alle textbox usa il metodo della classe BindingContext (vedi eventualmente su msdn i dettagli).

  7. #7
    dan1987 non è in linea Scolaretto
    Post
    138
    scusami, non sono sicuro che BindingContext possa fuzionare, per associare i dati del db alle textbox dopo che li hai letti fai semplicemente Text1.Text = <valoreletto>.ToString();

  8. #8
    daniatti non è in linea Novello
    Post
    7

    Stesso errore

    Ho fatto una cosa del genere, ma mi risulta lo stesso errore, se introduco l'int davanti al lordo mi dice che non posso dichiararlo due volte:

    c#

    protected void tbStipLordAnnuo_OnTextChanged(object sender, EventArgs e)
    {
    int lordo = Convert.ToInt32(tbStipLordAnnuo.Text);
    int grado = Convert.ToInt32(tbGradoOccup.Text);
    int pond = lordo * grado;
    tbStipPonderato.Text = pond.ToString();

    if (!String.IsNullOrEmpty(tbStipLordAnnuo.Text))
    {
    lordo = Convert.ToInt32(tbStipLordAnnuo.Text);
    }

    if (!String.IsNullOrEmpty(tbGradoOccup.Text))
    {
    grado = Convert.ToInt32(tbGradoOccup.Text);
    }
    }

  9. #9
    daniatti non è in linea Novello
    Post
    7

    Inserimento dati

    Scusa ma ti "rompo" ancora

    Io ho scritto questo nel c#, ma mi sorgono un po' di domande:

    1. Insert cos'é e da dove arriva?
    2. SqlConnection me lo sottolinea come errato.
    3. La procedura dove la creo e come.
    4. SqlParameter mi da errore

    Forse tutte queste cose devo dichiararla da qualche parte, non ho ben capito.

    Per parametri cosa intendi (nome_parametro, tipo_parametro)
    --> per esempio Nome?


    public static void Insert(object sender, EventArgs e)
    {
    using(SqlConnection connection = new SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db_personale.mdf;Integrated Security=True;User Instance=True"))
    }
    using (SqlCommand command = new SqlCommand())
    {
    Connection.Open();
    command.Connection = connection;
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "StoredProcedure";

    SqlParameter parameter = new SqlParameter("nome_parametro", "tipo_parametro");
    Parameter.Value = "valore_textbox";
    Command.Parameters.Add(Parameter);

    Command.ExecuteNonQuery();
    }

    Ti ringrazio

  10. #10
    dan1987 non è in linea Scolaretto
    Post
    138
    ciao, per l'errore sugli int devi dichiarare le variabili fuori dal metodo, come proprietà della pagina.

    Per gli errori sui SQL scrivi in testa al file using System.Data.SqlClient;

    La stored procedure la devi creare su SQL SERVER all'interno del db vai su programmabilità - storedprocedure tasto destro crea nuova storedprocedure.
    il metodo Insert nel c# te lo dichiari in un file cs (una normalissima classe) e lo richiami dalla pagina passandogli i valori delle varie textbox.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi