C#(VS2010)からSQL Server 2008 Expressに接続できません

Possible Duplicate:
Request for the permission of type '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、Culture =ニュートラル、PublicKeyToken = b77a5c561934e089 '   失敗しました。

私は関連するSOの投稿とオンラインの山を読んだが、それ以上は得られていない。私はConfig Mgrのすべてのプロトコルを有効にしました。何度もサービスを再開しました。接続文字列の信頼できる接続ではなく、「ユーザーID」と「パスワード」を使用してどこでもユーザーのアクセス許可を追加できました。ナダ。

0
どのような種類のC#プロジェクトを作成しましたか?何が起きているのかを判断する最初のステップとして、コンソールプログラムを試してみてください。
追加された 著者 JonnyBoats,
これを試してみませんか? stackoverflow.com/questions/5212973/…
追加された 著者 Alex R.,
"アセンブリを構成してfulltrustに設定されていることを確認するには、次の記事を参照してください。 social.msdn.microsoft.com/フォーラム/ is/sqlreportingservices/thr‌ ead /… (リンクはSSRS固有のものです)。おそらくあなたのアセンブリには同じものが必要です。
追加された 著者 ta.speot.is,
@AlexR。私のコメントよりも良いリンクを持っている
追加された 著者 ta.speot.is,
@Alex R.私は以前、プロジェクトを完全信頼に設定し、証明書を作成しました。その場合、プロジェクトを削除して新しいプロジェクトを作成し、完全信頼を有効にして、新しい署名付きテスト証明書を生成しました。どうもありがとう。あなたが回答を投稿すると、私は受け入れて喜んで、私はその他のリンクを再掲載します。
追加された 著者 Egor,

1 答え

私は自分でVS2010とSQL Server 2008 R8でアプリケーションを開発します。どのようにあなたがあなたのデータベースに接続したいのか分からないので、私は本当にあなたが開発していたアプリケーションの種類を知りたがっています。 2番目の注意点として、4.0を使用しているので、正しいSQL Serverがインストールされていることを確認してから、SQL Server 2008 R8は3.5.netで最もうまく動作します。間違っていなければ、4.0で動作するにはSP1が必要です。

とにかく、ここに私は私の設定を持っています。










それではまた、あなたのコードにエラーがある可能性があります。適切にデータベースを呼び出して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が実際にあなたの問題を解決するかもしれません。これが何らかの形で役立つことを願っています。

0
追加された