无法从 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"和"密码"而不是受信任的连接。娜达。
我自己用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 实际上可以解决您的问题。希望这在某种程度上有所帮助。