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(); }