- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- inserimento non ammesso dopo un certa data
-
Nono ho capito spiegati melgio, quando dovrebbe essere fatto il redirect?
-
all'interno del database sql server, in una tabella, quindi in un campo, inserisco una data. Nella pagina di inserimento dati vorrei che al verificarsi della data inserita nel campo di cui sopra si esegue un redirect ad un altra pagina. Spero di essere stato chiato, comunque grazie, ciao
-
Secondo me puoi risolvere in questo modo:
Se ho capito bene hai una tabella offerte dove hai tutti i dati relativi alle offerte, aggiungi un campo datetime o smalldatetime chiamandolo "ultimatum" o come preferisci tu. Quando inserisci una nuova offerta immetti anche la data e l'ora entro la quale puoi prenotare.
Ora quando il cliente tenta di prenotare nella pagina dovresti prima effettuare una query per recuperare il valore ultimatum, poi lo confronti con la data e l'ora attuale, se ci si trova entro questa data fai procedere alla prenotazione il cliente altrimenti esegui il redirect che volevi.
Questo è in linea teorica, se hai bisogno di una mano per effettuarlo praticamente (gli script intendo) chiedi pure qui.
Saluti
-
scusa se non ti ho risposto subito ma è un progetto che "coltivo" nel tempo libero (cioè quasi mai.. ). In effetti è come tu dici. Dovrei confrontare a data odierna con quella contenuta in una tabella (ultimo record inserito) e se la data odierna ha superato quella "di scadenza" fare in modo che non si possa procedere con l'immissione di dati in un altra tabella; magari potrebbe essere più facile fare un redirect ad una pagina di errore. l'istruzione sql per recuperre il dato dalla tabella non è un problema, quello che mi manca è il "confronto". Potrei farlo con If..then... ma con aspnet non ho mai provato in VB mi è facile. Se puoi aiutrmi te ne sarei grato. saluti
-
Sono riuscito ad elaborare il codice.
Eccolo:<%@ Page language="VB" debug="true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQLClient" %> <%@ import namespace="system.datetime" %> <script runat="server"> Sub page_load(obj As object, e As eventargs) Dim dtOggi As date Dim dtMai As date dtMai=#06/11/2008# dtOggi=system.datetime.now.ToShortDateString() If dtOggi >= dtMai Then Response.Redirect("/html/errore.aspx") End sub </script>
Lo scipt funziona perfettamente, ho solo un problema che non risco a risolvere, come posso fare per recuperare il valore da un campo di una tabella
ovviamente continuando a scrivere in VB, io ho provato ad aggiungere ```Dim cnn As New SQLConnection("DRIVER={SQL SERVER};SERVER=xxxxxxxx;DATABASE=xxxxxx;Uid=xxxx;Pwd=xxxx;")
Dim objCommand As New SqlCommand("Select datasc from provatempo ORDER by datasc DESC", objConn)
objCommand.Connection.Open()che ho messo subito dopo
Dim dtOggi As date
eliminando la riga successiva. Ma non risco ad andare oltre. Come faccio ad assegnare alal variabile dtMai il valore della campo "datasc"?
-
Mi pare tu stia sulla strada giusta se ricordo bene a memoria ti manca solo il datareader.
Con questo tu dichiari il DataReaderDim dr As New SqlDataReader() ```per riempire il datareader con i dati restituiti dalla query dopo l'istruzione objCommand.Connection.Open() devi inserire questo:
dr = objCommand.ExecuteReader() ' riempie il datareader
While dr.Read()
dtOggi = dr("datasc") 'recuperi il valore e lo assegni alla variabile
..... 'esegui i controlli che devi eseguire qui
End While
dr.close
........Fammi sapere se funziona.
-
Ti ringrazio.
ho provato con i tuoi consigli
e ho fatto così<%@ Page language="VB" debug="true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQLClient" %> <%@ import namespace="system.datetime" %> <script runat="server"> Sub page_load( Source as Object, obj As object, e As eventargs) Dim dtOggi As date dtOggi=system.datetime.now.ToShortDateString() Dim cnn As New SQLConnection("DRIVER={SQL SERVER};SERVER=xxxx;DATABASE=xxxxx;Uid=xxxxx;Pwd=xxxxx;") Dim objCommand As New SqlCommand("Select datasc from provatempo ORDER by datasc DESC", objConn) Dim dr As New SqlDataReader() objCommand.Connection.Open() dr = objCommand.ExecuteReader() ' riempie il datareader While dr.Read() dtMai = dr("datasc") 'recuperi il valore e lo assegni alla variabile ..... 'esegui i controlli che devi eseguire qui End While dr.close cnn.close If dtOggi >= dtMai Then Response.Redirect("/html/errore.aspx") End sub </script>
ma mi da un errore a questa riga
Dim objCommand As New SqlCommand("Select datasc from provatempo ORDER by datasc DESC", objConn)
In effetti non ho bisogno di fare il confronto con record multipli, perchè nella tabella ne avrò uno solo comunque grazie ho capito un altra cosa
Saluti
-
ho corretto la riga che ti scrivevo sopra, adesso l'errore è sulla riga del sqldatareader
<%@ Page language="VB" debug="true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQLClient" %> <%@ import namespace="system.datetime" %> <script runat="server"> Sub page_load( Source as Object, obj As object, e As eventargs) Dim dtOggi As date dtOggi=system.datetime.now.ToShortDateString() Dim cnn As New SQLConnection("DRIVER={SQL SERVER};SERVER=cvxxxx;DATABASE=xxxx;Uid=xxxx;Pwd=xxxx;") Dim objCommand As New SqlCommand("Select datasc from provatempo") Dim dr As New SqlDataReader() objCommand.Connection.Open() dr = objCommand.ExecuteReader() ' riempie il datareader While dr.Read() dtMai = dr("datasc") 'recuperi il valore e lo assegni alla variabile If dtOggi >= dtMai Then Response.Redirect("/html/errore.aspx") End While dr.close cnn.close End sub </script>
precisamente mi da errore qui:
Dim dr As New SqlDataReader()
ciao
-
Ho risolto finalmente! Ecco il codice esatto per il funzionamento:
<%@ Page language="VB" debug="true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQLClient" %> <%@ import namespace="system.datetime" %> <script runat="server"> Sub page_load(obj As object, e As eventargs) Dim DtMai As date Dim dtOggi As date dtOggi=system.datetime.now.ToShortDateString() Dim cnn As New SQLConnection("SERVER=XXXX;DATABASE=XXXX;Uid=XXXX;Pwd=XXXX;") Dim objCommand As New SqlCommand("Select datasc from provatempo", cnn) cnn.open() dim dr as SqlDataReader= objCommand.ExecuteReader() While dr.Read() dtMai = dr("datasc") 'recuperi il valore e lo assegni alla variabile If dtOggi >= dtMai Then Response.Redirect("/html/errore.aspx") End While dr.close cnn.close End sub </script>
Grazie a tutti per avermi aiutato!!!
-
ah ok perfetto, quindi va riempito al momento della dichiarazione il datareader.