Eseguire Script SQL da vb.net

venerdì 02 maggio 2014 - 10.24
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows Server 2008 R2  |  Windows Server 2008  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2  |  SQL Server 2008

_jack_ Profilo | Junior Member

Ciao a tutti,
sto creando un'applicazione di "installazione" di un database.
Spiego meglio: la mia applicazione (winform) si collegherà ad un database SQL Server (2008) ed eseguirà una serie di script (tabelle, stored procedure, sinonimi, ecc...).
Per fare ciò ho letto che il classico SqlCommand non va bene in quanto l'istruzione GO contenuta nello script viene male interpretata. Di conseguenza si consiglia di usare SMO come nell'esempio qui indicato

http://jai-on-asp.blogspot.it/2010/06/running-sql-script-file-from-net-code.html

Purtroppo quando eseguo un codice molto simile a questo nel momento di esecuzione dello script viene generata un'eccezione che recita:
L'assembly in modalità mista è compilato in base alla versione 'v2.0.50727' del runtime e non può essere caricato nel runtime 4.0 senza ulteriori informazioni di configurazione.

Le referenze le ho aggiunte correttamente dal percorso indicato (per versione 2008 non 2005 come sull'articolo).

Qualcuno mi sa dire come risolvere usanto .NET 4.0?

Grazie
Ciao

algraps Profilo | Junior Member

Ciao,
sei sicuro che sul serve ci sia la versione corretta del .Net?

Ciao
Al.

A.G.
http://nothingnessit.wordpress.com/

_jack_ Profilo | Junior Member

Ciao,
per ora sto sviluppando in locale quindi direi di si.

algraps Profilo | Junior Member

Hai controllato la versione degli assembly dalle proprietä e la versione del .net che stai utilizzando dalle proprietä del progetto?
A.G.
http://nothingnessit.wordpress.com/

_jack_ Profilo | Junior Member

File: Versione 10.50.1750.9
Il progetto è .NET 4.0

algraps Profilo | Junior Member

Per caso nel tuo config hai un qualcosa del genere

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>

o cosi':

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>


A.G.
http://nothingnessit.wordpress.com/

_jack_ Profilo | Junior Member

No, non ho forzato quei parametri.
Per ora ho risolto "splittando" lo script per "GO" ed eseguendo con SQL Command le query separate e funziona.
C'è da stare accorti per quanto riguarda le transazioni ma ci salto fuori.

Quando avrò più tempo cercherò di capire come mai SMO mi da di questi problemi.
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5