Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Data
giovedì 25 novembre 2004 - 18.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
gio 25 nov 2004 - 18:01
Ciao a tutti ho una web form con alcune caselle di testo in cui l'utente inserisce dei valori: utilizzo così una query sql parametrica che effettua l'inserimento in una tabella del database; il problema è che in un campo di testo l'utente deve inserire una data, e tutto va bene; poichè il campo nn è obbligatorio, se l'utente nn inserisce nulla, nel campo della tabella compare la data 01/01/1900, invece nn dovrebbe comparire nulla:
la query in sql è del tipo:
INSERT INTO [Progetto]([Nome], [Dt_Inizio], [Fine], [Descrizione], [Dt_Creazione], IDStato, IDAzienda)
VALUES(@Nome, @Dt_Inizio, @Fine, @Descrizione, @Dt_Creazione, @attivo, @idazienda)
il campo della data è @Dt_Inizio
ho provato in questo modo:
INSERT INTO [Progetto]([Nome], [Dt_Inizio], [Fine], [Descrizione], [Dt_Creazione], IDStato, IDAzienda)
VALUES(@Nome, isnull(@Dt_Inizio, 'null'), @Fine, @Descrizione, @Dt_Creazione, @attivo, @idazienda)
ma continua a inserire 01/01/1900;
nn capisco perchè; come posso risolvere il problema?Grazie mille
LudovicoVan
Profilo
| Junior Member
106
messaggi | Data Invio:
gio 25 nov 2004 - 20:24
Ciao mon,
potresti intanto mostrare come valorizzi il parametro @Dt_Inizio? -LV
Trinità
Profilo
| Junior Member
62
messaggi | Data Invio:
ven 26 nov 2004 - 09:47
mi pare devi passargli il valore striga 'null'
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
ven 26 nov 2004 - 09:51
Ciao ho provato con la stringa null e funziona; il problema è che quando faccio una select, se incontra un valore null nel campo data della tabella mi visualizza il valore 01/01/1900; invece dovrebbe visualizzare la stringa vuota; come devo fare?Grazie mille
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
ven 26 nov 2004 - 16:06
Ciao, nn c'è nessuno che mi può aiutare? Grazie
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
sab 27 nov 2004 - 20:45
Ma veramente nessuno mi sa dire come risolvere il mio problema?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 28 nov 2004 - 11:38
Ciao Mon,
mi chiedo come sia possibile che se inserisci un Null ti venga ritornato 01/01/1900.
Qual è il codice c# che stai usando che ti mostra questa data invece di un null ?
ciao
david
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
dom 28 nov 2004 - 22:31
Ciao, nella web form in c# richiamo solo una stored procedure creata in sql e la faccio eseguire così:
SqlCommand cmd= new SqlCommand("SP_AnagraficaProgetto",cntDatabase);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@idprogetto",idprogetto);
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;
DataSet DT=new DataSet();
adp.Fill(DT);
nometx.Text=DT.Tables[0].Rows[0]["Nome"].ToString(); txinizio.Text=Convert.ToDateTime(DT.Tables[0].Rows[0]["Dt_Inizio"]).ToShortDateString();
txfine.Text=Convert.ToDateTime(DT.Tables[0].Rows[0]["Dt_Fine"]).ToShortDateString();
txdescrizione.Text=DT.Tables[0].Rows[0]["Descrizione"].ToString();
SP_AnagraficaProgetto è una stored procedure definita in sql così:
CREATE PROCEDURE SP_AnagraficaProgetto
@idprogetto int
AS
Select * from PROGETTO where IDProgetto=@idprogetto
GO
questo è tutto; cmq per le date con valori <NULL> nella tabella mi torna 01/01/1900
LudovicoVan
Profilo
| Junior Member
106
messaggi | Data Invio:
lun 29 nov 2004 - 10:38
Ciao mon,
> cmq per le date con valori <NULL> nella tabella mi torna 01/01/1900
il fatto è che Convert.ToDateTime() ritorna "zero" (cioè 01/01/1900) se il valore è una referenza nulla... dal che ne deduco che ritorna zero anche quando il valore è NULL (DBNull).
Potresti provare a riscrivere così (non uso C# quindi la sintassi è da verificare):
if(IsDBNull(DT.Tables[0].Rows[0]["Dt_Inizio"])) txinizio.Text = "";
else txinizio.Text = Convert.ToDateTime(DT.Tables[0].Rows[0]["Dt_Inizio"]).ToShortDateString();
HTH. -LV
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 29 nov 2004 - 13:34
Grazie tante, come dici tu funziona, ma io dovrei gestire il tutto nella query SQL, in questo modo:
CREATE PROCEDURE [GoCRMAdmin].[SP_AnagraficaProgetto]
@idprogetto int
AS
select PROGETTO.Nome, isnull(PROGETTO.Dt_Inizio, '') as Dt_Inizio, isnull(PROGETTO.Dt_Fine, '') as Dt_Fine, PROGETTO.IDStato, PROGETTO.Descrizione, PROGETTO.IDAzienda, AZIENDA.IDAzienda, isnull (AZIENDA.Ragione_Sociale, '') AS Ragione_Sociale
from PROGETTO left outer join AZIENDA
on PROGETTO.IDAzienda=Azienda.IDAZIENDA
where IDProgetto=@idprogetto
GO
solo che nn mi funziona.Nn so come fare
LudovicoVan
Profilo
| Junior Member
106
messaggi | Data Invio:
lun 29 nov 2004 - 13:51
> io dovrei gestire il tutto nella query SQL
Questo non è molto corretto, poiché il formato del dato è Datetime ed è solo al livello di pagina web che ti occorre convertirlo ad una stringa user-friendly.
Comunque, se proprio hai bisogno di farlo nell'SQL, occorre che il CONVERT lo fai nella query (e non hai tutte le opzioni di formattazione che hai in VB):
> SELECT isnull(CONVERT(char(10), PROGETTO.Dt_Inizio, 105), '') as Dt_Inizio, ...
Inoltre, in questo caso, occorre che nella pagina web leggi il valore con un semplice ToString().
Ciao. -LV
Torna su
Stanze Forum
Elenco Threads
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 !