我有一个针对SQL Server 2012的Visual Studio 2012 SQL Server数据库项目,该项目添加了一个存储过程。我可以调试和发布项目。 SP工作,因为我可以传入一个值,在代码中修改它,然后返回修改后的值。我遇到的问题是当我尝试在单独的SQL实例上打开一个连接(SqlConnection.Open)到另一个数据库时,我收到以下错误。
"请求类型&System; System.Data.SqlClient.SqlClientPermission,System.Data,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失败"
抛出此错误的相同代码在控制台应用程序中正常工作。
我是SQL Server数据库项目的新手,非常感谢您的帮助。我已经找到了解决方案,但我能够找到任何相关的东西。顺便说一下,这是我第一次发帖
抛出错误:
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();
}
}
这有效:
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();
}
}
答案 0 :(得分:0)
Visual Studio 2012中的SSDT版本非常老 - 下载最新的SSDT,如果你没有visual studio 2015那么它将下载比2012版更好的shell。
当前版本的SSDT适用于SQL 2012(2005年以上版本),因此没有理由坚持使用旧版本。