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

    [VB.NET] Inserire data in datetime

    Ciao... eccomi di nuovo qua a chiedere aiuto...

    1° caso
    cmd2.CommandText = "INSERT INTO Table (DATA) VALUES (" & Date.Now & ")"

    2° caso
    cmd2.CommandText = "INSERT INTO Table (DATA) VALUES ('" & Date.Now & "')"

    il campo DATA nella tabella è del tipo Datetime

    nel primo caso VB mi da errore di sintassi in prossimità dell' ora (forse perchè tra la data e l'ora c'è uno spazio e non ci sono gli apici) " sintassi non corretta in prossimità di '10.02'."

    nel secondo caso mi dice "La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo di valori validi."

    cosa sbaglio??

  2. #2
    usi OleDb?

    codice:
            Dim cmdOle As OleDbCommand = New OleDbCommand()
            cmdOle.CommandText = "INSERT INTO Table (DATA) VALUES (?)"
            cmdOle.Parameters.Add(New OleDbParameter("DATA", Date.Now))
    usi SqlClient?

    codice:
            Dim cmdSql As SqlCommand = New SqlCommand()
            cmdSql.CommandText = "INSERT INTO Table (DATA) VALUES (@DATA)"
            cmdSql.Parameters.Add(New SqlParameter("@DATA", Date.Now))
    no pain no gain!

    ricordati che hai dei limiti...

  3. #3
    SqlClient.

    mi manca uno step alla soluzione

    Dim cmdSql As SqlCommand = New SqlCommand()
    cmdSql.CommandText = "INSERT INTO Table (DATA) VALUES (@DATA)"
    cmdSql.Parameters.Add(New SqlParameter("@DATA", Date.Now))

    la seconda e la terza riga stanno all'interno di un ciclo for, chiaramente VB si infastidisce perchè prova n volte New SqlParameter...

    poi, mi sono accorto di essermi spiegato male... anzi ho prorpio sbagliato a porre il problema... la data non la recupero da Date.now, ma da una datagridview nella quale ho memorizzato le date di alcuni record.

    ultimo aiutino??.....

  4. #4
    mio errore:

    cmdSql.Parameters.Add(New SqlParameter("@DATA", Date.Now))

    non va @DATA tra parentesi ma solo DATA (nome della variabile indicata nel CommandText senza @)

    vb non si infastidisce per il new, necessario, ma per il Dim cmdSql as SqlCommand

    così dovrebbe andare, modificando ovviamente ciclo for e cella della data

    codice:
            Dim cmdSql As SqlCommand
            For i As Integer = 0 To 10
                cmdSql = New SqlCommand()
                cmdSql.CommandText = "INSERT INTO Table (DATA) VALUES (@DATA)"
                cmdSql.Parameters.Add(New SqlParameter("DATA", Convert.ToDateTime(Me.DataGridView1.Rows(i).Cells(0).Value)))
            Next
    no pain no gain!

    ricordati che hai dei limiti...

  5. #5
    mi dice che la variabile @data è già stata dichiarata...

  6. #6
    come non detto... avevo lasciato cmdSql = New SqlCommand() fuori dal ciclo for....

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.