67 messaggi dal 13 marzo 2002
Salve,
nella mia applicazione sto prevedendo una feature che consente una migrazione di piccole quantità di dati tra tabelle compatibili di differenti DB.
Per organizzare il tutto utilizzo ovviamente due connessioni differenti;
1. prima leggo dalla tabella sorgente e riempio una DataTable;
2. effettuo la relativa Insert sul sistema Target.

I Sistemi Source e Target sono rispettivamente di Produzione e di Sviluppo.
Problema:
quando provo a fare l'insert sul Target i tipi Timestamp e Data risultano incompatibili perchè nell'atterraggio sulla DataTable è avvenuta la conversione (da AAAA-MM-GG etc. o comunque dal formato originario) al formato del server su cui gira l'applicazione (GG/MM/AAAA etc).
Anche con un eventuale Datetime.Parse prima di effettuare l'inserimento non riesco a superare il problema.

Conclusione:
come si fa ad impedire la conversione dei dati implicita? O eventualmente, come la si forza ad un determinato Culture Info?

Grazie e a presto,
Safi
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Per gli inserimenti nel db usa SEMPRE i parameter.

Per la culture, inserisci nel web.config:

<globalization uiCulture="it-IT" culture="it-IT" />

Ciao
.
67 messaggi dal 13 marzo 2002
Ciao andrewz,
innanzitutto grazie per la tua disponibilità.
Volevo solo tenere presente che
1. I DB si trovano su server che hanno un Culture Info che non è IT;
2. la migrazione può avvenire da qualsiasi tabella a qualsiasi tabella... non ho quindi utilizzato il PARAMETER ma una banale ciclo sintetizzato così:

foreach (DataRow row in SourceDataTable.Rows)
{
..........
SqlInsert += "insert into " + TargetDatabaseName + "." + TargetTableName + " values(";

foreach (DataColumn col in SourceDataTable.Columns)
{
............

A presto,
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
L'uso dei parameter di permette di inserire la data nel formato corretto con qualsiasi culture.

L'uso dei parameters:
http://www.aspitalia.com/script/522/Utilizzare-Classe-SqlParameter-Prevenire-Attacchi-Tipo-SQLinjection.aspx
Ciao
.
67 messaggi dal 13 marzo 2002
Ciao andrewz,
sicuramente l'argomento è interessante e merita un mio approfondimento.
Però mi sfugge dove impostare il Culture Info a livello di singola colonna.
A presto,
Safi
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Per gli inserimenti e i select non devi più convertire alcunché con i parameter, è questo il bello

Ti devi solo preuccpare della culture dell'applicazione che risolvi con: <globalization uiCulture="it-IT" culture="it-IT" />

Ciao
.

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.