SQL Server Compact Edition 3.5 への接続とSQL文の実行

SQL Server Compact Editionを使ってみます。

まず、サーバーエクスプローラウィンドウを表示し、サーバーノードを展開し、「データ接続」を選択します。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像1

「データ接続」を選択し、右クリックをしポップアップメニューを表示させます。ポップアップメニューの「接続の追加」メニューをクリックします。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像2

「データソースの選択」ダイアログが表示されます。 SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像3

データソースを「Microsoft SQL Server Compact 3.5」にし、データプロバイダを「.NET Framework Microsoft SQL Server Compact 3.5 用データ プロバイダー」にします。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像4

「続行」ボタンをクリックすると「接続の追加」ダイアログが表示されます。「接続のプロパティ」グループ内の「データベース」の「作成」ボタンをクリックします。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像5

「SQL Server Compact データベースの新規作成」ダイアログが表示されます。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像6

データベースファイル名を「新しいSQL Server Compact データベースのファイル名の入力」のテキストボックスに入力します。また、照合は「日本語 - 日本」に設定しました。データベースのパスワードも入力します。すべて入力できましたら「OK」ボタンをクリックします。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像7

「SQL Server Compact データベースの新規作成」ダイアログが閉じ、「接続の追加」ダイアログに戻りますので、「パスワード」テキストボックスにデータベースを作成した際に入力したパスワードを入力します。「テスト接続」ボタンをクリックし、正しく接続ができていることを確認したならば、「OK」ボタンをクリックします。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像8

続いてテーブルの作成をします。「データ接続」ノードの下に作成した接続のノード(今回は"SQL Compact.sdf")が作成されますので、ノードを展開し「テーブル」を選択し右クリックでポップアップメニューを表示させ。「テーブルの作成」メニューを選択します。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像9

テーブル作成画面が表示されますので、テーブルを設計します。テーブル名はgoodsとしました。今回はid,name,priceの3つの列を用意しました。idはint型でNULLを許容せず、主キーの設定にし、IDをtrueに設定しました。(下図参照)
nameはnvarchar型、priceはint型にしました。
設定を終えたら「OK」ボタンをクリックします。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像10

続いてデータの入力をします。「テーブル」ノードの下に作成したテーブルのアイテムが表示されますので、これを選択し、ポップアップメニューの「テーブルデータの表示」メニューを選択します。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像11

テーブルのデータが表示されます。作成したばかりなのでまだ空です。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像12

テーブルデータを入力します。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像13

データベースにアクセスするプログラムを作成します。
フォームにテキストボックスとボタンを配置します。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像14

ボタンのOnClickイベントに以下のコードを記述します。接続文字列のData Source部分はsdfファイルを配置したパスを設定します。

   private void button1_Click(object sender, EventArgs e)
    {
      string constr = @"Data Source='C:\Users\HenoHenoMoheji\Documents\SQLCompact.sdf';
        Persist Security Info=True; Password=test";
      //SqlCeEngine sce = new SqlCeEngine(constr);

      SqlCeConnection con = new SqlCeConnection(constr);
      con.Open();
      try {
        string sqlstr = "select * from goods";
        SqlCeCommand com = new SqlCeCommand(sqlstr, con);
        SqlCeDataReader sdr = com.ExecuteReader();

        while (sdr.Read() == true) {
          string name = (string)sdr["name"];
          int price = (int)sdr["price"];
          textBox1.Text += string.Format("{0:s}:{1:d} \r\n", name, price);

        }
      }
      finally {
      }

    }
SQL文には、データベースのすべてのレコードを取り出すSQL(select * from goods)を記述しました。
実行してボタンを押します。データベースに入力した内容が正しく取り出せていることが確認できました。
SQL Server Compact Edition 3.5 への接続とSQL文の実行:画像15

SQL文を書き換えることで、更新やレコードの追加も同様にできます。



AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2009-12-21
Copyright © 1995–2025 iPentec all rights reserverd.