Conversione date per ricerca

lunedì 12 aprile 2010 - 11.15

mauri1961 Profilo | Senior Member

In una gridview che è già sottoposta a un altro paio di ricerche per campi diversi, ho la necessità di selezionare i dati in base a due date limite.
Nella tabella sqlserver queste date sono in formato date (es.2010-04-10 00:00:00).
In fase di gridview sono visualizzate correttamente nel formato 10/04/2010 senza la visualizzazione dell'ora.

Ho, quindi, inserito due text.box chiamandoli richdal e richal.
In una sub ho inserito questo codice creando altri due campi da utilizzare nella select della tabella:

Sub perichia(ByVal sender As Object, ByVal e As EventArgs)

Dim dataprova As DateTime
dataprova = Convert.ToDateTime(richdal.Text.Trim())
Dim dataprova2 As DateTime
dataprova2 = Convert.ToDateTime(richal.Text.Trim())

Dim culture As IFormatProvider = New CultureInfo("en-us", True)
Dim data = DateTime.Parse(dataprova, culture, DateTimeStyles.NoCurrentDateDefault)


Dim conn As New SqlConnection("Data Source=dell-07\SQLEXPRESS; Initial Catalog=CASSAWEB;Integrated Security=SSPI")
Dim command As New SqlCommand("select * from WEB_PUBB where data_pratica between '#" & dataprova & "#' and '#" & dataprova2 & "#'", conn)
conn.Open()
Dim dr As SqlDataReader = command.ExecuteReader()
GridView1.DataSource = dr
GridView1.DataBind()
conn.Close()
End Sub

Ma evidentemente ci sono degli errori in quanto mi restituisce questo errore:

Conversione non riuscita durante la conversione di una stringa di caratteri in una data o ora.


Grazie, Maurizio

skraus Profilo | Junior Member

Io ho avuto un problema simile ed ho risolto in questo modo.

parametriDb["@dal"].Value = (Convert.ToDateTime(TextBox_Dal.Text)).ToString("yyyyMMdd", System.Globalization.CultureInfo.CreateSpecificCulture("it-IT"));

Modifica l'istruzione SQL del Command in questo modo:

select * from WEB_PUBB where data_pratica between @dal and @al

Quindi poi pocedi alla gestione dei due parametri come ti ho indicato sopra.

Ciao
Sk

mauri1961 Profilo | Senior Member

Scusa l'inesperienza ma come devo dichiarare parametridb, in quanto il compilatore mi segnala giustamente che il suddetto non e' dichiarato.
Nel codice che utilizzavo avevo due campi che gestivo con il dim, per parametridb che devo fare?

Grazie, Maurizio

skraus Profilo | Junior Member

Il codice dovrebbe essere questo.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ciao
Sk
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5