Valori particolari in char

martedì 18 gennaio 2005 - 12.33

ysdemarc Profilo | Expert

Ciao a tutti...
nell'eseguire questa istruzione:

row["MiaColonna"] = miaColonna;

mi si verifica questa eccezione:

Eccezione non gestita di tipo "System.ArgumentException" in system.data.dll

Informazioni aggiuntive: System.ArgumentException: La persistenza DataSet Xml non supporta il valore '0x20' come Char. Utilizzare un archivio Byte.
at System.Data.Common.CharStorage.Set(Int32 record, Object value)
at System.Data.DataColumn.set_Item(Int32 record, Object value)Impossibile archiviare < > nella colonna MiaColonna. Il tipo previsto è Char.

row è un tipo DataRow ricavato da un xml
row["MiaColonna"].getType() è System.Char
miaColonna è un char

l'errore si verifica perchè miaColonna è impostato a ' ' (spazio)
come posso dare un valore vuoto a un char senza ottenere l'errore? Che significa utilizzare un archivio di byte?

Ciao

ysdemarc Profilo | Expert

...pei valori null in sono d'accordo ma non capisco perchè un char non prenda lo spazio singolo...

Brainkiller Profilo | Guru

Forse prova così:

System.Text.Encoding.Ascii.GetBytes(" ")

vedi se accetta o meno. Questo costruisce un array di bytes, il cui unico elemento è uno spazio.

ciao
david

ysdemarc Profilo | Expert

niente da fare usare System.Text.Encoding.ASCII.GetBytes(" ") o mSystem.Text.Encoding.ASCII.GetBytes("new char[1])... da caset exception ed è impossibile fare il cast..

ho risolto però ponendo il campo del db = char.MinValue

grazie a tutti.

ciao
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5