예제 #1
0
        internal void inserisciSoggiorno(Soggiorno sg, bool nuovoCliente)
        {
            OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.SoggiorniDbConnectionString);
            OleDbCommand cmd;
            string queryString;

            if (nuovoCliente)
            {
                conn.Open();

                queryString = "INSERT INTO Cliente (Nome, Cognome, Telefoni, Descrizione, Email) VALUES (?, ?, ?, ?, ?)";
                cmd = new OleDbCommand(queryString, conn);
                cmd.Parameters.Add("Nome", OleDbType.Char, 255).Value = sg.Cliente.Nome;
                cmd.Parameters.Add("Cognome", OleDbType.Char, 255).Value = sg.Cliente.Cognome;
                cmd.Parameters.Add("Telefoni", OleDbType.Char, 255).Value = sg.Cliente.Telefoni;
                cmd.Parameters.Add("Descrizione", OleDbType.Char, 255).Value = sg.Cliente.Descr;
                cmd.Parameters.Add("Email", OleDbType.Char, 255).Value = sg.Cliente.Email;

                cmd.ExecuteNonQuery();

                //eseguo la query per ottenere l'id appena inserito
                cmd = new OleDbCommand("SELECT @@IDENTITY", conn);
                sg.Cliente.Id = (int)cmd.ExecuteScalar();

            }
            else
            {//aggiornamento dati (essenziali) cliente esistente
                var cta = new ClienteTableAdapter();
                cta.UpdateEssentialById(sg.Cliente.Nome, sg.Cliente.Cognome, sg.Cliente.Telefoni,
                    sg.Cliente.Descr, sg.Cliente.Email, sg.Cliente.Id);
            }

            //inserimento dati soggiorno
            if(conn.State != System.Data.ConnectionState.Open)
                conn.Open();


            /* Arrivo, Partenza, Cliente.ID, Camera.ID, UsoCamera, Caparra, NoteCaparra, NoteDurataSoggiorno,
             * NomePrenotante, Confermato, NoteNumeroOspiti
             * */
            queryString = "INSERT INTO Soggiorno (Arrivo, Partenza, ClienteId, CameraId, UsoCamera, Caparra, "+
                "NoteCaparra, NoteDurataSoggiorno, NomePrenotante, Confermato, NoteNumeroOspiti) VALUES "+
                "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            cmd = new OleDbCommand(queryString, conn);
            cmd.Parameters.Add("Arrivo", OleDbType.Date).Value = sg.Arrivo;
            cmd.Parameters.Add("Partenza", OleDbType.Date).Value = sg.Partenza;
            cmd.Parameters.Add("IdCliente", OleDbType.Integer).Value = sg.Cliente.Id;
            cmd.Parameters.Add("IdCamera", OleDbType.Integer).Value = sg.Camera.Id;
            cmd.Parameters.Add("UsoCamera", OleDbType.Char, 255).Value = sg.UsoCamera;
            cmd.Parameters.Add("Caparra", OleDbType.Single).Value = sg.Caparra;
            cmd.Parameters.Add("NoteCaparra", OleDbType.Char, 255).Value = sg.NoteCaparra;
            cmd.Parameters.Add("NoteSoggiorno", OleDbType.Char, 255).Value = sg.NoteDurata;
            cmd.Parameters.Add("Prenotante", OleDbType.Char, 255).Value = sg.Prenotante;
            cmd.Parameters.Add("Confermato", OleDbType.Boolean).Value = sg.Confermato;
            cmd.Parameters.Add("NoteCamera", OleDbType.Char, 255).Value = sg.NoteCamera;

            cmd.ExecuteNonQuery();
            
            conn.Close();
        }