web-dev-qa-db-ja.com

Visual Studio Express Editionを使用してSQL Serverに接続する

Visual C#2008 Expressエディションで、データベースエクスプローラーを使用する場合のオプションは次のとおりです。

  1. Microsoft Access
  2. SQL Server Compact 3.5、および
  3. SQL Serverデータベースファイル。

ただし、Visual Web Developer 2008 Expressを使用している場合は、通常のSQL Server、Oracle、ODBCなどに接続できます。

SQL Serverデータベースと通信する必要のあるコマンドラインまたはその他のC#アプリを開発している人にとって、1つIDE(Visual Web Developer)別のプログラム(Visual C#)

難しい回避策ではありませんが、奇妙に思えます。 MicrosoftがVisual StudioにアップグレードしてSQL Serverに接続することを強制したい場合、無料のIDEの1つにその機能を含め、他のIDEには含めないのはなぜですか?私は何かが欠けているように感じます(Visual C#ですべてを行う方法など)。

49
Tom Lianza

適切な種類のデータベースを取得するには、SQL Serverデータベースファイルオプションを選択できるはずです(system.data.SqlClient provider)、接続文字列を手動で修正して、dbを指すようにします。

これらのデータベース選択の背後にある理由は、おそらく次のようになっていると思います。

  • Express Editionを使用していて、not Visual Web Developerを使用している場合、おそらくデスクトッププログラムを構築していることになります。
  • デスクトッププログラムを作成していて、エクスプレス版を使用している場合、おそらく企業で開発を行うのではなく、自宅で仕事をしている愛好家またはuISV-erでしょう。
  • 企業向けに開発していない場合、アプリはおそらくエンドユーザー向けであり、データストアはおそらくローカルマシン上で実行されます。
  • server-classデータベースをエンドユーザーのデスクトップに展開するべきではありません。 Sql Server CompactやMS Accessなどのin-process dbの方がはるかに適切です。

ただし、このロジックは完全には成り立ちません。これらの4つのポイントがそれぞれ90%の場合でも、4つすべてを適用するまでに、視聴者の〜65%にのみ適用されます。つまり、エクスプレスマーケットの最大35%が合法的に話をしたい場合があります。サーバークラスのdbに、そしてそれは重要なグループです。そのため、簡略化された(貪欲な)バージョン:

  • 実際のdbサーバー(およびそれを実行するハードウェア)には実際の費用がかかります。それにアクセスできるのであれば、少なくともVisual Studioの標準版を購入できるはずです。
21
Joel Coehoorn

回避策:

  1. Visual Web Developer Expressでソリューションを開きます。ソリューションのプロジェクトの一部は読み込まれませんが、問題ありません。
  2. データベースエクスプローラーで、SQL Serverから必要なデータベースに新しい接続を作成します。
  3. 新しいクラスライブラリプロジェクトを追加します。
  4. LINQ to SQL Classesアイテムを追加し、データベースにリンクします。
  5. ソリューションを閉じます。
  6. Visual C#Expressでソリューションを開きます。

これで、Visual C#ExpressでSQL ServerデータベースにリンクされたLINQ to SQLクラスライブラリができました。

更新

ソリューションはVisual Studio Express 2010用です。

21
Sergey Shandar

C#Express 2008を機能させることができた唯一の方法は、データベースファイルを移動することでした。そこで、SQL Server Management Studioを開き、データベースを削除した後、ファイルをプロジェクトフォルダーにコピーしました。次に、データベースを管理スタジオに再接続しました。これで、ローカルコピーにアタッチしようとすると機能します。どうやら、同じデータベースファイルを複数回使用することはできません。

2
Z.K.

私の推測では、VWDを使用すると、ソリューションがサードパーティサーバーに展開される可能性が高くなります。サードパーティサーバーの多くは、動的に接続されたSQL Serverデータベースファイルを許可しません。したがって、他の接続タイプの許可。

IDE動作の違いは、フルバージョンにアップグレードする主な理由の1つです。

2
Mitchel Sellers

便宜上、Windowsフォームでホームビジネスアプリケーションを開始しました。現在、Visual C#Express 2010/SQL Server 2008 R2 Expressを使用して開発しています。 SQLサーバーのインスタンスに接続する必要があるOPと同じ問題が発生しました。ここでは詳細を省略しますが、そのデータベースは、現在開発中のアプリケーションを使用する2〜3台のコンピューター間で同期されるマージされたデータベースになります。

少なくとも、今まで問題なくテーブルアダプターでストアドプロシージャを使用できるようになったため、簡単な回避策を見つけました。

App.configの別のプロジェクト(VS2010 Premium)で使用したSQL接続を貼り付けてコピーし、そこで必要なものをすべて変更しました。 Settings.settingsに戻ったとき、app.configファイル内に何があるかを確認する必要がありました。私が見ることができる唯一の欠点は、「SQL Server」はオプションではないため、接続文字列の構成内に入るとどこにも行けないため、接続を「テスト」できないことです。もう1つの欠点は、ウィザードを使用して機能させることができないため、すべてを手動で入力する必要があることです。

私はその方法でそれをしたかどうかはわかりませんが、少なくとも今はSQLサーバーに接続できます:)。

編集:

SQL Server 2008 R2 Expressインスタンスでのみ機能します。 SQL Server 2008 R2 Workgroup以上で試してみると、Visual C#2010 Expressから「現在のバージョンのVisual Studioではその接続を使用できない」という厄介な警告が表示されます。テーブルアダプターの一部を変更しようとしたときにそれを取得しました。開発するためにSQL Expressインスタンスに切り替えましたが、再び正常に動作しています。

2
Tribalinius

これを使用してLINQ to SQLを取得し、Visual Developerに必要な場合は、1)無料のVisual WEB Developerを取得し、それを使用してSQL Serverインスタンスに接続し、LINQインターフェイスを作成し、生成されたファイルをあなたのVis-Devプロジェクト(私はVDをおもしろくないので使用しません)。 * .dbmlファイルのみを含めます。 Vis-Dev環境は、サポートファイルを認識するのに1〜2秒かかります。それは少し余分なステップですが、確かに手でそれをやったり、それを完全にあきらめたり、それ以上にお金を払うよりも良いでしょう。 Mooo ha ha haha​​。

2
user188143