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
.NET Framework
Interpretare valori DBNull
mercoledì 12 novembre 2008 - 16.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
liveforever81
Profilo
| Junior Member
104
messaggi | Data Invio:
mer 12 nov 2008 - 16:45
Salve a tutti!
Ho questo problema: nella lettura di un DB mi tiro fuori una riga, chiamiamola DataRow dr;
Questa riga ha molteplici colonne dai tipi più disparati (generalmente String, DateTime e int).
Ciclo i valori di questa riga in modo da trasportarmeli altrove sulla base del tipo di tale campo: il problema sorge perchè quando trova DBNull mi si schianta e nn riesce a gestirlo.
Avevo provato a fare una cosa del genere:
for (int i = 0; i < method.ReturnProperties.Count; i++)
{
String type = serviceObject.Properties[method.ReturnProperties[i]].Type;
if (drNGR[i] is DBNull)
{
switch (type)
case ("String"):
serviceObject.Properties[method.ReturnProperties[i]].Value = String.Empty;
break;
case ("DateTime"):
serviceObject.Properties[method.ReturnProperties[i]].Value = DateTime.MinValue;
break;
case ("int"):
serviceObject.Properties[method.ReturnProperties[i]].Value = -1;
break;
default: break;
}
}
else
{
serviceObject.Properties[method.ReturnProperties[i]].Value = drNGR[i];
}
}
Esso però mi schianta:
String was not recognized as a valid DateTime.
Potete aiutarmi?
Grazie
llamanna
Profilo
| Junior Member
70
messaggi | Data Invio:
mer 12 nov 2008 - 17:03
Se non ho capito male, in base al tipo devi trasferire i dati letti nella riga, su oggetti differenti.
Perchè non provi ad usare la seguente sintassi:
if(dr[i] is string)
{
//assegno dr[i] ad una certa variabile stringa
}
else if (dr[i] is DateTime)
{
//assegno dr[i] ad una certa variabile datetime
}
in questo modo eviti il problema sul DBNull
Laura.
http://lauralamanna.blogspot.com/
liveforever81
Profilo
| Junior Member
104
messaggi | Data Invio:
mer 12 nov 2008 - 17:16
Il mio obiettivo è di capire, tra i valori null restituiti dalla riga, il tipo di tali valori null...capisci?
if(dr[i] is String)
o is DateTime non mi permette di capire se quel tipo è null o no, ma mi costringe ad annidare un altro statement all'interno...
llamanna
Profilo
| Junior Member
70
messaggi | Data Invio:
mer 12 nov 2008 - 17:41
Forse stavolta ho capito: devi prendere una contromisura quando il datarow ti restituisce il valore DBnull. Se il datarow appartiene ad un dataTable potresti adottare la seguente soluzione:
if(dr[i] == DBNull.Value)
{
//Valuti il tipo restituito da:
Type tipoValoreNullo = dr.Table.Columns[i].DataType
//e prendi le relative contromisure
}
Laura.
http://lauralamanna.blogspot.com/
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 !