无法从 C# (VS2010) 连接到 SQL Server 2008 Express

本文关键字:SQL Server 2008 Express 连接 VS2010 | 更新日期: 2023-09-27 18:18:27

可能的重复项:
请求类型为"System.Data.SqlClient.SqlClientPermission, System.Data, Version=4.0.0.0"的权限

我第一次尝试为数据库编写 C# 前端现在进展很糟糕,所以希望我能得到一些帮助。

我下载并安装了VS2010(90天试用版(和SQL Server Express 2008 R2的新副本。我创建了一个名为MyDB的新数据库。如果我打开SQL Server Configuration Manager,我可以看到SQL Server(MyDB(和SQL Server Browser,两者都在运行。我可以使用SQL Server Management Studio连接到服务器,创建新的数据库,表等。

在VS中,我导入了System.Data.SqlClient。我像这样创建一个新连接

SqlConnection myDatabase = new SqlConnection(@"Data Source=localhost'MyDB;Initial Catalog=main;Trusted_Connection=True");

但是,当我尝试打开它时

myDatabase.Open();

我收到安全异常:

请求类型为"System.Data.SqlClient.SqlClientPermission, System.Data, 版本=4.0.0.0,区域性=中性,公钥令牌=b77a5c561934e089' 失败。

我已经阅读了一堆相关的SO帖子和在线内容,但没有进一步。我已经启用了 Config Mgr 中的每个协议,我无数次重新启动服务,我在可以找到的所有地方添加了用户权限,并尝试在我的连接字符串中使用"用户 ID"和"密码"而不是受信任的连接。娜达。

无法从 C# (VS2010) 连接到 SQL Server 2008 Express

我自己用VS2010和SQL Server 2008 R8开发应用程序。我真的希望我知道您正在开发哪种应用程序,因为我不知道您希望如何连接到数据库。第二点,SQL Server 2008 R8 最适合 3.5.net,因为您使用 4.0,请确保您安装了正确的正确 sql 服务器。如果我没记错的话,您需要 SP1 才能使用 4.0。

无论如何,这是我的设置方式。

<appSettings>
<add key="DataServerLEGOCUSTOM" value="GP2010LEGOCUSTOM"/>
<add key="DataServerLEGO" value="GP2010LEGO"/>
</appSettings>
<connectionStrings>
<add name="GP2010LEGOCUSTOM" connectionString="Data Source=GP2010;Initial Catalog=LEGOCUSTOM;Persist Security Info=True;User ID=XX;Password=XXY" providerName="System.Data.SqlClient"/>
<add name="GP2010LEGO" connectionString="Data Source=GP2010;Initial Catalog=LEGO;Persist Security Info=True;User ID=XX;Password=XXY" providerName="System.Data.SqlClient"/>
</connectionStrings>

再说一次,错误可能出在您的代码中。您必须正确调用数据库并创建 sql 连接。所以像这样的事情

public class Database
{
    private string serverLEGOCUSTOM, serverLEGO;
    private string ConnectionStringLEGOCUSTOM, ConnectionStringLEGO;
    private SqlConnection connectionLEGOCUSTOM, connectionLEGO;
    public Database()
    { 
        serverLEGOCUSTOM = ConfigurationManager.AppSettings["DataServerLEGOCUSTOM"];
        ConnectionStringLEGOCUSTOM = ConfigurationManager.ConnectionStrings[serverLEGOCUSTOM.ToString();
        connectionLEGOCUSTOM = new SqlConnection(ConnectionStringLEGOCUSTOM);
        serverLEGO = ConfigurationManager.AppSettings["DataServerPCI"]
        ConnectionStringLEGO = ConfigurationManager.ConnectionStrings["serverLEGO"].ToString();
        connectionLEGO = new SqlConnection(ConnectionStringLEGO);
    }

这基本上只是连接 sql 数据库的另一种方式。即使持久化安全信息=True 实际上可以解决您的问题。希望这在某种程度上有所帮助。