我第一次为数据库编写C#前端的尝试现在非常糟糕,所以希望我能得到一些帮助。
我下载并安装了VS2010(90天试用版)和SQL Server Express 2008 R2的全新副本。我创建了一个名为MyDB的新数据库。如果我打开SQL Server配置管理器,我可以看到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的权限, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' 失败。
我已经阅读了一堆相关的SO帖子和在线,但没有进一步。我已经启用了Config Mgr中的每个协议,我已经无数次地重新启动了服务,我已经在我找到的任何地方添加了用户权限,并尝试在我的连接字符串中使用“user id”和“password”而不是可信连接。纳达。
答案 0 :(得分:0)
我自己用VS2010和SQL Server 2008 R8开发应用程序。我真的希望我知道你正在开发什么样的应用程序,因为我不知道你想如何连接到你的数据库。在第二个注释中,SQL Server 2008 R8最适合3.5.net,因为您使用4.0,请确保安装了正确的sql server。如果我没有弄错的话你需要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数据库的另一种方式。尽管Persist Security Info = True可能实际上可以解决您的问题。希望这在某种程度上有所帮助。