C# Programming

../../ImageIcons/Statistics.jpg
Image

SqlDataSourceの設定

開発環境: Visual Studio 2005

1.目次

1.目次
2.目的
3.参考書
4.データソースの設定方法
  4.1 ツールボックス→Dataから、SqlDataSourceを指定して作成する方法
  4.2 コントロールから、データソースを指定する方法
5.SQLデータベースに接続できない場合のチェックポイント

2.目的

SQL Server 2005、Visual Studio 2005における、SqkDataSourceの設定の仕方についての説明。

3.参考書

(1)

4.データソースの設定方法

データソースの設定方法には

  1. ツールボックス→Dataから、SqlDataSourceを指定して作成する方法。
  2. コントロールから、データソースを指定する方法。
  3. 直接コーディングする方法。

など、いくつかの方法あります。ここでは、1、2のSqlDataSourceを設定する方法について説明します。

前提として、SQL 2005 サーバがVisual Studio 2005から接続可能であり、サンプルデータベースの「AdventureWorks」がインストールされいるものとします。

4.1 ツールボックス→Dataから、SqlDataSourceを指定して作成する方法

(1) ツールボックス→Dataから「SqlDataSource」を選択し、フォーム上にドラッグ&ドロップします。すると、次のようにSqlDataSourceが表示されますので、データソースの構成を行います。「SqlDataSource タスク」をクリックします。

Image

(2)すると、データ接続選択ダイアログが表示されます。まだ何もデータベースへの接続がない状態なので、「新しい接続」ボタンを押します。

Image

(3) すると接続の追加ダイアログが表示されるので、サーバ名、認証、データベースを適切に選択します。
ここでは、AdventureWorksを使用します。「接続の確認」ボタンで、接続の確認はしておきましょう。

Image

(4)すると、アプリケーション構成ファイルに接続文字列を保存するためのダイアログが表示されますので、次へを押します。
Image

(5)するとデータベースからデータを取得する方法について聞いてきますので、適当な方法を指定します。
ここでは、カスタムSQLステートメントまたはストアドプロシージャを指定するを選択し、「次へ」ボタンを押します。

注意: AdventureWorksの場合、「テーブルまたはビューから列を指定します」を選択した場合、テーブル名を一意に特定できずにエラーになる場合があります。
Image

(6)次のようなSQL分の入力画面が現れるので、「クエリビルダ」ボタンを押します。
Image

(7)クエリビルダで、適当な列を選択し、「クエリの実行」で問題ないことを確認します。
Image

(8)クエリのテストを行い、正しく実行されていることを確認します。
Image

(9)最後に完了を押すと、データソースの準備が完了です。

 

4.2 コントロールから、データソースを指定する方法

GridViewなどのデータコントロールをフォーム上にドラッグ&ドロップして、そこからデータソースを設定することができます。

(1) ここでは、ツールボックスのGridViewをフォーム上のドラッグ&ドロップします。
Image

(2) すると、次のような「データソース構成ウィザード」が起動します。ここでは、SQL2005に接続するので、「データベース」を選択します。
Image

(3)すると、4.2章の(2)のデータ接続選択ダイアログが表示されます。あとは、4.2章(2)以降を参照してください。

5.SQLデータベースに接続できない場合のチェックポイント

SQL Server 2005は、標準でセキュリティ設定が厳しくなっています。標準では、VS2005と同時にSQL Server Expressがインストールされますので、それを使う場合はもんだいありませんが、外部のSQLサーバに接続できない場合は、次の点を確認してみてください。

症状(1):サーバエクスプローラで新しい SQL Server データベースの作成で、次のようなエラーが出る。

Image

エラーダイアログ
「エラーとしては、サーバーへの接続は正常に確立されましたが、ログイン前のハンドシェイク時にエラーが発生しました。SQL Server 2005に背尽くしているときにこのエラーが発生した場合は、SQL Serverの規定の設定がリモート接続を許可していないようになっていることがエラーの原因である可能性があります。(provider: 名前つきパイプ プロバイダ、error: 0 - パイプの他端にプロセスがありません。)」

Image

症状(2): 接続の追加ダイアログでサーバー名は取得できるが、データベースの選択または入力で何も表示されない。

Image

SQL Serverのセキュリティ構成から、「データベースエンジン」→「ローカル接続およびリモート接続」をオンにします。

Image