Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C# e DB Access] problema con campo dati di tipo Ora

    Ciao a tutti,questa è la prima volta che posto su questo forum e lo faccio per chiedere un aiuto su un problema che mi sta bloccando il lavoro:

    Ho un database access ( e già qui è tutto un dire perchè solitamente lavoro su progetti con SQL Server) in cui una tabella chiamata Appuntamenti ha un campo dataApp di tipo Data/Ora con formattazione 24H ( 17.45,12.34 ecc insomma).

    Il problema sorge quando da VS2008 faccio una query che mi deve andare ad inserire un nuovo record nella tabella Appuntamenti. Ecco il codice che uso

    object obj = null;
    dataSelezionata =Convert.ToDateTime( monthCalendar1.SelectionStart);
    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12. 0;Data Source=C:\Documents and Settings\davide.ambu\Desktop\Nuova cartella\Nuova cartella\ProgettoCaboom\Caboom\DBCaboom.mdb");
    conn.Open();
    OleDbCommand cmd = conn.CreateCommand();
    cmd.CommandText="SELECT max(idAppuntamento)+1 FROM Appuntamenti";
    obj = cmd.ExecuteScalar();
    decimal newId = Convert.ToDecimal(obj);
    cmd.CommandText = "INSERT INTO Appuntamenti (idAppuntamento,dataApp,Ora,NomeCliente,Note) values(" + newId + ", " + dataSelezionata + "," + Convert.ToDateTime(textBox16.Text).ToShortTimeStri ng() + ",'" + textBox15.Text + "','" + textBox17.Text + "')";
    cmd.ExecuteNonQuery();
    conn.Close();
    btnSalvaAppuntamneto.Enabled = false;


    il tutto è messo dentro un button_click. I valori da inserire vengono presi da alcune textbox il problema sta che mi da sempre un errore di sintassi dentro Insert into. Sicuro sbaglio qualcosa nel fargli l'insert del campo ora.
    grazie per qualsiasi aiuto che mi darete.

  2. #2
    Utente di HTML.it L'avatar di Franz78
    Registrato dal
    Sep 2004
    Messaggi
    730
    ti consiglierei di utilizzare i parametri
    non sbagli mai....

    Codice PHP:
    cmd.CommandText "INSERT INTO Appuntamenti (idAppuntamento,dataApp,Ora,NomeCliente,Note) values(@P1,@P2,@P3,@P4,@P5)";

    cmd.Parameters.Add("@P1",OledbType.int).Value newId
    ecc......


    ciao ciao

  3. #3
    stesso errore anche usando i parametri ( che poi sarebbero da usare solo nelle stored procedure),non so proprio come gestire questo formato ora

    nel parametro ho messo
    codice:
                cmd.Parameters.Add("@P3",OleDbType.Date).Value=Convert.ToDateTime( textBox16.Text).ToShortTimeString();
    e non cambia nulla

  4. #4
    mi auto rispondo dopo innumerevoli prove ho risolto mettendo le [] attorno ai nomi dei campi,il codice è guale a quello di prima con la sola modifica
    codice:
                cmd.CommandText = "INSERT INTO Appuntamenti (idAppuntamento,[dataApp],[Ora],[NomeCliente],[Note]) values (" + newId + ", '" + dataSelezionata + "','" + Convert.ToDateTime(textBox16.Text).ToShortTimeString() + "','" + textBox15.Text + "','" + textBox17.Text + "')";
    magari a qualcun altro che ha sempre usato sqlserver può tornare utile o magari ero solo io a non saperlo

  5. #5
    che poi sarebbero da usare solo nelle stored procedure
    sei sicuro?

    Il problema era solo per il campo Note ... che doveva essere racchiuso tra parentesi quadre perchè parola riservata.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.