Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158

    [C#]Problema formato date

    Buon giorno a tutti ho un problema,non riesco a capire come impostare il formato corretto delle date,non riesco a trovare il modo per farlo vi posto il codice,se avete qualche esempio ve ne sarei grato,sono un principiabte

    codice:
    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    namespace Orologeria
    {
        public partial class InsBusta : Form
        {
    
    
           // SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Paolo_2\Dropbox\Programmazione\c#\Work\Orologeria\Orologeria\DataOrologeria.mdf;Integrated Security=True");
            SqlCommand comando;
            SqlConnection conn;
    
    
            string constr =  @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Paolo_2\Dropbox\Programmazione\c#\Work\Orologeria\Orologeria\DataOrologeria.mdf;Integrated Security=True";
    
    
            public InsBusta()
            {
                InitializeComponent();
            }
    
    
    
    
            
            
    
    
            
            private void salvaButton_Click(object sender, EventArgs e)
            {
               /* conn.Open();
    
    
                SqlCommand comando = new SqlCommand("", conn);
               comando.CommandText = "Insert into bustaRiparazione (codiceBustaCliente,cliente,dataInserimento,dataConsegna,descrizioneOggetti,lavoriDaEseguire,prezzoC) values ('" +
                    codiceBustaTB.Text + "', '" +
                    clienteCB.Text + "','"+
                    dataAccDTP.Value.Month + "/" + dataAccDTP.Value.Day + "/" + dataAccDTP.Value.Year + "','" +
                    dataConsegnaDTP.Value.Month + "/" + dataConsegnaDTP.Value.Day + "/" + dataConsegnaDTP.Value.Year + "','" +
                    descOggettiTB.Text + "','"+
                    lavoriTB.Text+"','"+
                    float.Parse(prezzoCTB.Text)+")";
                
               
               // comando.CommandText = "Insert into bustariparazione(dataConsegna) values ('" + dataConsegnaDTP.Value.Year + "/" + dataConsegnaDTP.Value.Month + "/" + dataConsegnaDTP.Value.Day + "')";
                comando.ExecuteNonQuery();
    
    
                conn.Close(); */
    
    
                conn = new SqlConnection(constr);
                comando = new SqlCommand();
                conn.Open();
    
    
                //Creo istanze SqlParameter
    
    
                SqlParameter codiceBusta = new SqlParameter("@CB",SqlDbType.NVarChar);
                SqlParameter cliente = new SqlParameter("@CL", SqlDbType.NVarChar);
                SqlParameter dataI = new SqlParameter("@DI", SqlDbType.Date);
                //SqlParameter dataC = new SqlParameter("@DC", SqlDbType.Date);
               // SqlParameter descrizione = new SqlParameter("@DE", SqlDbType.NVarChar);
                
                
                //Aggiunta parametri
                comando.Parameters.Add(codiceBusta);
                comando.Parameters.Add(cliente);
                comando.Parameters.Add(dataI);
               // comando.Parameters.Add(dataC);
               // comando.Parameters.Add(descrizione);
    
    
                //Settiamo i valori
              
                codiceBusta.Value = codiceBustaTB.Text;
                cliente.Value = clienteCB.Text;
                dataI.Value = dataAccDTP.Value.Date.ToString("MM/dd/yyyy"); ///////Ho provato cosi ma                 //non funziona
                //dataC.Value = dataC.Value;
                //descrizione.Value = Convert.ToString(descOggettiTB.Text);
                
    
    
                 
                //aggiungo i comandi a sqlcomandi
    
    
                comando.Connection = conn;
    
    
                //sql Statement
    
    
    
    
                comando.CommandText = "Insert into bustaRiparazione (codiceBustaCliente,cliente,dataInserimento) values ('@CB','@CL','@DI')";
    
    
    
    
                try
                {
                    comando.ExecuteNonQuery();
                    MessageBox.Show("Salvato");
    
    
    
    
                    codiceBustaTB.Clear();
    
    
               
                }
                catch(Exception err)
                    {
                    MessageBox.Show("Non Salvato"+err);
                    }
    
    
                finally
                {
                    conn.Close();
                
                }
    
    
    
    
    
    
    
    
            }
    
    
            private void InsBusta_Load(object sender, EventArgs e)
            {
                // TODO: questa riga di codice carica i dati nella tabella 'dataSet1._clienti__'. È possibile spostarla o rimuoverla se necessario.
                this.clienti__TableAdapter.Fill(this.dataSet1._clienti__);
              
              
            }
    
    
            private void esciButton_Click(object sender, EventArgs e)
            {
    
    
            }
        }
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi dare maggiori dettagli sul problema

    E possibilmente il codice deve essere meno confusionario ... elimina i commenti e indenta correttamente, indicando la riga in cui incontri problemi (ed esattamente quali messaggi d'errore/malfunzionamenti).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Ecco l codice corretto ripulito ho commentato la riga incriminata


    codice:
    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    namespace Orologeria
    {
        public partial class InsBusta : Form
        {
    
    
        
            SqlCommand comando;
            SqlConnection conn;
    
    
            string constr =  @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Paolo_2\Dropbox\Programmazione\c#\Work\Orologeria\Orologeria\DataOrologeria.mdf;Integrated Security=True";
    
    
            public InsBusta()
            {
                InitializeComponent();
            }
    
    
            
            private void salvaButton_Click(object sender, EventArgs e)
            {
               
    
    
                conn = new SqlConnection(constr);
                comando = new SqlCommand();
                conn.Open();
    
    
                //Creo istanze SqlParameter
    
    
                SqlParameter codiceBusta = new SqlParameter("@CB",SqlDbType.NVarChar);
                SqlParameter cliente = new SqlParameter("@CL", SqlDbType.NVarChar);
                SqlParameter dataI = new SqlParameter("@DI", SqlDbType.Date);
               
                
                
                //Aggiunta parametri
    
    
                comando.Parameters.Add(codiceBusta);
                comando.Parameters.Add(cliente);
                comando.Parameters.Add(dataI);
              
    
    
                //Settiamo i valori
               
                codiceBusta.Value = codiceBustaTB.Text;
                cliente.Value = clienteCB.Text;
                dataI.Value = dataAccDTP.Value;////////////////-----------ERRORE/////////////////
                
    
    
                 
                //aggiungo i comandi a sqlcomandi
    
    
                comando.Connection = conn;
    
    
    
    
                //sql Statement
    
    
    
    
                comando.CommandText = "Insert into bustaRiparazione (codiceBustaCliente,cliente,dataInserimento) values ('@CB','@CL','@DI')";
    
    
    
    
                try
                {
                    comando.ExecuteNonQuery();
                    MessageBox.Show("Salvato");
    
    
    
    
                    codiceBustaTB.Clear();
    
    
               
                }
                catch(Exception err)
                    {
                    MessageBox.Show("Non Salvato"+err);
                    }
    
    
                finally
                {
                    conn.Close();
                
                }
    
    
    
    
    
    
            }
    
    
            private void InsBusta_Load(object sender, EventArgs e)
            {
                // TODO: questa riga di codice carica i dati nella tabella 'dataSet1._clienti__'. È possibile spostarla o rimuoverla se necessario.
                this.clienti__TableAdapter.Fill(this.dataSet1._clienti__);
              
              
            }
    
    
            private void esciButton_Click(object sender, EventArgs e)
            {
    
    
            }
        }
    }


    ERRORE

    codice:
    Richiesta utente:Visualizzato "" (MessageBox)MessageBox visualizzato con testo "Non SalvatoSystem.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting date and/or time from character string.
       in System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAc"  e didascalia "".
    Ora: 16/11/2013 10.35.37
    Thread:<Nessun nome>[3544]




    Allego anche la foto dell'errore
    Immagini allegate Immagini allegate
    Ultima modifica di Nio74; 16-11-2013 a 11:41

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova con

    dataI.Value = dataAccDTP.Value.ToShortDateString();
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    non Funziona(da lo stesso errore) è propio un errore di formattazione da quel poco che ho capito il dataTimePiker ha una formattazione dd/mm/yyyy ma invece ho provato con una query di prova il database lo vuole MM/dd/yyyy

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora usa la ToString indicando quel formato
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Allora usa la ToString indicando quel formato

    dataI.Value = dataAccDTP.Value.ToString("MM/dd/yyyy");

    Ho provato ma niente sempre lo stesso errore, ho provato anche cosi ma niente


    dataI.Value = dataAccDTP.Value.DateToString("MM/dd/yyyy");

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    ho provato anche cosi:

    dataI.Value = Convert.ToDateTime(dataAccDTP.Value).ToString("yyy y-MM-dd"); oppure ("MM-dd-YYYY")

    ma niente a questo punto mi è venuto il dubbio che ci fosse qualcosa di sbagliato anche nel database ma non trovo nulla:

    codice:
    CREATE TABLE [dbo].[bustaRiparazione] (    [IdBusta]            INT           IDENTITY (1, 1) NOT NULL,
        [codiceBustaCliente] NVARCHAR (50) NULL,
        [cliente]            NCHAR (10)    NULL,
        [dataInserimento]    DATE          NULL,
        [dataConsegna]       DATE          NULL,
        [descrizioneOggetti] NVARCHAR (80) NULL,
        [lavoriDaEseguire]   NVARCHAR (80) NULL,
        [prezzoC]            FLOAT (53)    NULL,
        [prezzoP]            FLOAT (53)    NULL,
        [prezzoPreventivo]   FLOAT (53)    NULL,
        [note]               NVARCHAR (50) NULL,
        PRIMARY KEY CLUSTERED ([IdBusta] ASC)
    );


  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Che Idiota sbagliavo la stringa SQL

    mettevo gli apici e invece non serviva,la notte porta consiglio

    errore

    comando.CommandText="Insert into bustaRiparazione (codiceBustaCliente,cliente,dataInserimento) values ('@CB','@CL','@DI')";


    Stringa corretta

    comando.CommandText="Insert into bustaRiparazione (codiceBustaCliente,cliente,dataInserimento) values (@CB,@CL,@DI)";

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.