Visual Studio 2017でSQL Server LocalDBを使ったWindowsフォームアプリを開発してみました。
LocalDBをプロジェクトに組み込みアプリケーションと一緒に配布できるようにしてみました。
#環境
Windows 7 Professional SP1 64bit
Visual Studio 2017 Community
SQL Server Express 2016 LocalDB
※今回はWindows7で問題なく動作しましたが、SQL Server 2016からWindows7はサポート外となったようです。
https://docs.microsoft.com/ja-jp/sql/sql-server/install/hardware-and-software-requirements-for-installing-sql-server
#LocalDBデータベース作成
LocalDBのデータベースを作成する方法はこちらを参考にしてください。
http://qiita.com/akabei/items/7f62056e44dd2d44f703
#SQL Serverオブジェクトエクスプローラーからデタッチ
SQL Serverオブジェクトエクスプローラーで作成したデータベースをサーバーエクスプローラーから接続しようとするとエラーになってしまうので、その前にデータベースをデタッチします。
#サーバーエクスプローラーに接続を追加
サーバーエクスプローラーからデータ接続を右クリックしてメニューから「接続の追加...」を選択します。
ダイアログが表示されるので次のように入力します。
データソース: Microsoft SQL Sever (SqlClient)
サーバー名: (localdb)\ProjectsV13
データベースファイルのアタッチ: 作成したLocalDBデータベースファイル(*.mdf)を選択します。
サーバーエクスプローラーのデータ接続にデータベースが表示されます。
#プロジェクト作成
新しいプロジェクトから「Visual Basic」、「Windowsクラシックデスクトップ」の「Windowsフォームアプリケーション」を選択します。(.NET Framework 4.6.1)
#データセット作成
新しい項目の追加でデータセットを追加します。
サーバーエクスプローラーからテーブルをデータセットへドラッグ&ドロップします。
データベースをプロジェクトにコピーしてそこへ接続するように変更するか確認されるので「はい」を押します。
これによりデータベースがプロジェクトに組み込まれアプリケーションと一緒に配布されるようになります。
データセットにテーブルへアクセスするTableAdapterが作成されます。
また、サーバーエクスプローラーのデータベースも接続先がプロジェクトのものに変更されます。
#テーブルをフォームに配置
データソースからデータセットのテーブルをフォームにドラッグ&ドロップします。
グリッドがフォームに配置されるのでサイズや位置を調整します。
#アプリケーション実行
デバッグを開始するとアプリケーションが実行され、グリッドにテーブルの内容が表示されます。
#アプリケーション配布
ソリューションの以下フォルダのファイルを実行したいPCへコピーします。
WindowsApp1\WindowsApp1\bin\Debug
WindowsApp1\WindowsApp1\bin\Release
#配布先PCでアプリケーションを実行
配布先でアプリケーションを実行すると・・・エラーが!
配布先のPCにLocalDBがインストールされていないのが原因でした。
LocalDBをインストールしてアプリケーションを動作させるまでの手順は以下を参考にして下さい。
SQL Server 2016 Express LocalDBインストール手順
http://qiita.com/akabei/items/89537546ddca3b962e81