Determinazione tipologia campo MySQL da DataTable

martedì 05 febbraio 2013 - 15.30
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  MySQL 5.1

Zixower Profilo | Newbie

Ho un nuovo quesito che non riesco a risolvere.

Utilizzando il MySQL connector 6.6.4, carico una tabella all'interno di un DataTable attraverso un comando SQL di SELECT. Ciò che sto cercando di fare è determinare la tipologia MySQL delle colonne che vengono create nel DataTable. Questo mi serve per capire, ad esempio, se una colonna che nel DataTable è di tipo DataTime, nella tabella MySQL è DataTime o Date (entrambe in VB.NET vengono convertite in DataTime).

alx_81 Profilo | Guru

Ciao
>Utilizzando il MySQL connector 6.6.4, carico una tabella all'interno
>di un DataTable attraverso un comando SQL di SELECT. Ciò che
>sto cercando di fare è determinare la tipologia MySQL delle colonne
>che vengono create nel DataTable. Questo mi serve per capire,
>ad esempio, se una colonna che nel DataTable è di tipo DataTime,
>nella tabella MySQL è DataTime o Date (entrambe in VB.NET vengono
>convertite in DataTime).
prova a vedere se con questa tecnica riesci a fare quanto ti serve:
http://stackoverflow.com/questions/3097467/how-to-determine-if-the-type-of-a-datacolumn-is-numeric-string-or-datetime
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

Zixower Profilo | Newbie

Ti ringrazio per la risposta.

La soluzione che mi proponi mi identifica il tipo VB della colonna, invece a me serve sapere se si riesce a risalire, partendo dal datatable, alla tipologia MySQL.
Per capire lo scopo della mia domanda, molto probabilmente non mi sono spiegato bene nel mio post e mi scuso, le tipologie Blob, LongBlob e MediumBlob vengono tradotti in VB come Byte() (questo potrebbe al massimo essere gestito controllando la dimensione massima che può assumere il campo, ma non ho ancora avuto modo di controllare se funziona), metre, altro esempio, le tipologie Date e DateTime di MySQL vengono tradotte entrambe in DateTime in VB.
Per carità, con un paio di controlli sui valori e sulle proprietà dei campi si riesce comunque a recuperare la tipologia MySQL da quella VB, ma per evitare eventuali errori di analisi da parte mia, se ci fosse uno strumento VB che mi indica la tipologia MySQL corrispondente sarebbe ottimale.

alx_81 Profilo | Guru

>La soluzione che mi proponi mi identifica il tipo VB della colonna,
>invece a me serve sapere se si riesce a risalire, partendo dal
>datatable, alla tipologia MySQL.
>Per capire lo scopo della mia domanda, molto probabilmente non
>mi sono spiegato bene nel mio post e mi scuso, le tipologie Blob,
>LongBlob e MediumBlob vengono tradotti in VB come Byte() (questo
>potrebbe al massimo essere gestito controllando la dimensione
>massima che può assumere il campo, ma non ho ancora avuto modo
>di controllare se funziona), metre, altro esempio, le tipologie
>Date e DateTime di MySQL vengono tradotte entrambe in DateTime
>in VB.
>Per carità, con un paio di controlli sui valori e sulle proprietà
>dei campi si riesce comunque a recuperare la tipologia MySQL
>da quella VB, ma per evitare eventuali errori di analisi da parte
>mia, se ci fosse uno strumento VB che mi indica la tipologia
>MySQL corrispondente sarebbe ottimale.
personalmente interrogherei il catalog del tuo database. Alla fine sai da dove vengono le colonne e quindi sai anche interrogare i metadati.

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

Zixower Profilo | Newbie

So che è passato un anno, ma purtroppo il progetto a cui è associata la mia domanda ha una priorità molto bassa e pertanto non l'ho ripreso in mano prima di un mese fa.
Alla fine ho risolto eseguendo una doppia interrogazione: la SELECT per recuperare i dati della tabella e la SHOW FIELDS FROM [nome tabella] per recuperare i dati dei campi. Dal campo Type dei record restituiti dalla SHOW recupero la tipologia MYSQL dei vari campi.
Grazie per l'aiuto, mi hai dato una dritta giusta.
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