2017-02-23 7 views
0

J'ai un projet de base de données SQL Server Visual Studio 2012, ciblant SQL Server 2012, auquel une procédure stockée a été ajoutée. Je peux déboguer et publier le projet. Le SP fonctionne, en ce que je peux passer une valeur, le modifier dans le code, puis retourner la valeur modifiée. Le problème que je rencontre est lorsque j'essaie d'ouvrir une connexion (SqlConnection.Open) à une base de données différente sur une instance SQL distincte, je reçois l'erreur suivante.Demande d'erreur d'autorisation lors de l'ouverture de la connexion SQL

"Demande d'autorisation de type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' a échoué"

Le même code qui jette cette erreur fonctionne correctement dans une application de console. Je suis nouveau dans les projets DB SQL Server et j'apprécierais toute aide. J'ai cherché une solution, mais j'ai été en mesure de trouver quelque chose de pertinent. BTW, c'est la première fois l'affichage

Cela jette une erreur:

public partial class StoredProcedures 
{ 

    [Microsoft.SqlServer.Server.SqlProcedure] 
    public static SqlInt32 SqlStoredProcedure3 (SqlInt32 inInt, out SqlInt32 outInt) 
    { 
     SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder(); 
     connBuilder.DataSource = "mySqlInstance"; 
     connBuilder.InitialCatalog = "myDbName"; 
     connBuilder.IntegratedSecurity = false; 
     connBuilder.UserID = "myUserName"; 
     connBuilder.Password = "myPW"; 
     SqlConnection sqlCn = new SqlConnection(connBuilder.ConnectionString); 
     sqlCn.Open(); 
    } 
} 

Cela fonctionne:

class Program 
{ 
    static void Main(string[] args) 
    { 
     SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder(); 
     connBuilder.DataSource = "mySqlInstance"; 
     connBuilder.InitialCatalog = "myDbName"; 
     connBuilder.IntegratedSecurity = false; 
     connBuilder.UserID = "myUserName"; 
     connBuilder.Password = "myPW"; 
     SqlConnection sqlCn = new SqlConnection(connBuilder.ConnectionString); 
     sqlCn.Open(); 
    } 
} 

Répondre

0

La version de SSDT dans Visual Studio 2012 est très ancienne - Télécharger le dernier SSDT, si vous n'avez pas le studio visuel 2015 alors il va télécharger le shell qui est encore meilleur que la version 2012.

La version actuelle de SSDT fonctionne avec SQL 2012 (2005 vers le haut), il n'y a donc aucune raison de conserver une ancienne version.