2012-07-01 9 views
5

Sto costruendo un'applicazione in C# visual studio 2012 RC.Eseguire il file .sql dall'applicazione in C# utilizzando la libreria SMO

Devo eseguire gli script all'interno dell'applicazione. per questo sto usando. Queste due librerie. Il framework .net di destinazione della mia applicazione è 4.5.

using Microsoft.SqlServer.Management.Smo; 
using Microsoft.SqlServer.Management.Common; 

Ho scritto il codice per eseguire gli script dopo aver verificato il database meteo esistente o meno.

Quando eseguo il codice, viene visualizzata un'eccezione imprevista. so davvero cosa significa. Potresti per favore aiutarmi per sbarazzarsi di questa eccezione.

Allego anche il mio codice e l'anteprima dell'eccezione.

Please HELP ME ... Ho già cercato su Google.

enter image description here

**Here are the Exception Details.** 

System.IO.FileLoadException è stata gestita HResult = -2.146,232799 millions Messaggio = assemblaggio modalità mista è costruito contro la versione 'v2.0.50727' del runtime e non può essere caricato in runtime 4.0 senza ulteriori informazioni di configurazione. Source = mscorlib StackTrace: a System.Reflection.RuntimeAssembly.GetType (RuntimeAssembly assemblaggio, String name, booleano throwOnError, booleano ignoreCase, tipo ObjectHandleOnStack) a System.Reflection.RuntimeAssembly.GetType (nome String, Boolean throwOnError, booleano ignoreCase) a System.Reflection.Assembly.GetType (nome String, Boolean throwOnError) a Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements (query String, ExecutionTypes executionType, Int32 & statementsToReverse) a Microsoft.SqlServer.Management.Common .ServerConnection.ExecuteNonQuery (String sqlCommand, ExecutionTypes executionType) in Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (String sqlCo mm e) presso McFarlaneIndustriesPOSnamespace.SplashScreen.CreateDatabase() in e: \ Works \ McFarlane Industries \ McFarlane Industries Punto di vendita Codice sorgente \ McFarlaneIndustries \ SplashScreen.cs: riga 139 presso McFarlaneIndustriesPOSnamespace.SplashScreen.splashScreenTimer_Tick (Oggetto mittente, EventArgs e) in e: \ Works \ McFarlane Industries \ McFarlane Industries Punto di vendita Codice sorgente \ McFarlaneIndustries \ SplashScreen.cs: riga 159 in System.Windows.Forms.Timer.OnTick (EventArgs e) in System.Windows.Forms.Timer. TimerNativeWindow.WndProc (Messaggio & m) a System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lparam) a System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG & msg) in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (IntPtr dwComponentID, Int32 motivo, Int32 pvLoopData) in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (motivo Int32, Contesto ApplicationContext) in System.Windows.Forms.Application.ThreadContext.RunMessageLoop (motivo Int32, contesto ApplicationContext) in System.Windows.Forms.Application.Run (Form mainForm) in McFarlaneIndustriesPOSnamespace.Program.Main() in e: \ Works \ McFarlane Industries \ McFarlane Industries Punto di vendita Codice sorgente \ McFarlaneIndustries \ Program.cs: riga 19 su System.AppDomain._nExecuteAssembly (RuntimeAssembly assemblaggio, String [] args) a System.AppDomain.nExecuteAssembly (RuntimeAssembly assemblaggio, String [] args) a System.Runtime.Hosting.ManifestRunner.Run (booleano checkAptModel) a System.Runtime.Hosting.ManifestRunner .ExecuteAsAssembly() a System.Runtime.Hosting.ApplicationActivator.CreateInstance (activationContext activationContext, String [] activationCustomData) a System.Runtime.Hosting.ApplicationActivator.CreateInstance (activationContext activationContext) a System.Activator.CreateInstance (activationContext activationContext) in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() in System.Threading.ThreadHelper.ThreadStart_Context (stato dell'oggetto) a System.Threading.ExecutionContext.RunInternal (ExecutionContext ExecutionContext, ContextCallback callback, stato oggetto, booleano preserveSyncCtx) a System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback callback, oggetto di stato, booleano preserveSyncCtx) a System.Threading. ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback callback, oggetto di stato) a System.Threading.ThreadHelper.ThreadStart() InnerException:

+0

Inviare i dettagli di eccezione – saille

+0

Ho modificato la domanda e aggiunto i dettagli di eccezione come richiesto. L'istantanea mostra il punto su cui si apre l'eccezione. Si prega di vedere anche i dettagli e l'istantanea. –

risposta

5

sembra che si sta cercando di caricare .net versione 2 di Microsoft.SqlServer.xxxx .dll. Aggiornare i riferimenti a una versione .net4 (preferibile), oppure aggiungere il seguente mantra al vostro app.config sotto il <configuration> nodo

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

per consentire il caricamento di .net 2 assemblee. Vedi here for details.

+0

Queste due librerie referenziate nel mio progetto non erano presenti nella mia assemblea. poi ho scaricato il file MSI "SharedManagementObjects.msi" x64 per SQL Server 2008 R2. dopodiché compare questa eccezione. ora ho intenzione di scaricare questo file dalla pagina web di SQL Server 2012. spero ora. Lo scontro n. non arriva. sto andando bene, signore. lo installo davvero. o qualcos'altro. È questa la via giusta. –

+0

Facci sapere se sqlsvr2012 ha l'API SMO .net 4. In caso contrario, utilizzare le modifiche app.config per far funzionare le cose. – spender

+0

Sei fantastico ... tu il migliore ... tu sei grande ... signore ... io sono un fan ora ... il mio problema è risolto ... Grazie .. un sacco. molto altro molto ... molto meglio ... –

Problemi correlati