18 messaggi dal 15 novembre 2013
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 principiante


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)
        {


        }
    }
}
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
sì, il problema è in questa riga.
dataI.Value = dataAccDTP.Value.Date.ToString("MM/dd/yyyy");


Non invocare il ToString(), lascia che sia il parametro stesso a decidere quale sia il formato giusto da usare nella query. Del resto hai correttamente creato il parametro con il tipo SqlDbType.Date, dunque ti basta fare:
dataI.Value = dataAccDTP.Value.Date;


Comunque, fai attenzione perché nella prima INSERT stai usando l'input dell'utente direttamente nella query e questo ti espone alla SQL Injection. Specie se la tua è un'applicazione pubblicata su internet, è abbastanza urgente che la prima INSERT riceva i valori attraverso dei parametri, proprio come hai fatto con l'altro comando INSERT.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.