54 messaggi dal 07 aprile 2005
chiedo scusa anticipatamente per la probabile banalità della domanda

dovendo recuperare da una textbox un numero telefonico per inserirlo in un campo tinyint di un sql db

MyCommand.Parameters.Add(New SqlParameter("@art_phone1", SqlDbType.SmallInt))
MyCommand.Parameters("@art_phone1").Value = phone1.Text

non funziona, e nemmeno

MyCommand.Parameters.Add(New SqlParameter("@art_phone1", SqlDbType.SmallInt))
MyCommand.Parameters("@art_phone1").Value = cInt(phone1.Text)

in entrambi i casi:

Exception Details: System.FormatException: Input string was not in a correct format

come si deve passare/convertire correttamente tale valore?
Ma non è che un numero di telefono, in numero è un po' troppo grande per essere stare in uno SmallInt.
Come testo phone1 che valore ha?

Ciao

Il mio blog
Homepage
18 messaggi dal 04 giugno 2003
Curiosità, (anche perchè mi interessa imparare) come fai a codificare i numeri di telefono (comprensivi di prefisso) che iniziano quindi inizieranno con lo 0 (zero)?

Se stacchi il prefisso in un altro text box, e poi lo memorizzi come testo a parte come fai con i cellulari che ormai hanno numeri del tipo
3920267543

dove 392 fa da prefisso
e il numero diventa 0267543

hai un campo differente?
e se qualcuno scrivesse il numero nel formato
00393920267543
o
+393920267543

come ti comporti?

Resto convinto che conviene memorizzare i telefoni come testo, casomai controllando che l'utente (furbacchione) non abbia inserito qualche carattere alfabetico,


CIAO
54 messaggi dal 07 aprile 2005
Ricciolo
hai naturalmente ragione... il campo a db è in formato Int

ho risolto il problema della conversione utilizzando

MyCommand.Parameters.Add(New SqlParameter("@art_phone1", Convert.ToUInt16(0)))
MyCommand.Parameters("@art_phone1").Value = phone1.Text

Deta,
si il problema dello "0" si pone, e gestire il campo come testo evita sicuramente di complicarsi la vita...

Non è un caso poi così raro dover effettuare una conversione di questo genere tra dati inseriti e formato del campo a db: al di la del caso specifico era qualcosa che mi serviva risolvere.

Ciao a tutti

Luca

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.