C#の.net frameworkでのとりあえずの接続
C#には新しい .NET(他のOSもサポートする)と従来の .net framework(Windowsのみ)がありますが、今回は従来のものでやってみます
SQLserverのインストール
Visual Studio のinstallerですでに「.NETデスクトップ開発」と「データの保存と処理」がインストール済みとして話を進めます。.NETデスクトップ開発でC#もVBもインストールされています。
なので、SQLserveのインストールそしてSSMS(SQL Server Management System)のインストールを行っていきます
ブラウザで「sqlserver download」を検索します。microsoftのサイトが出たらクリックします
何種類か出てきますが、上のほうは有料なので下のほうを探すと、無料のEXPRESSがありますので、そちらをクリックします
SQL2022-SSEI-Expr.exeを実行してインストールを始めます。
基本から選択
ライセンス条項に同意して
インストールを開始します
遅いマシンでは時間がかかります。まずはダウンロード
そしてインストール
ようやく終わりました
SSMSのインストール
SQLserverは裏で動いているだけで操作ができません。そこでSSMSというサブシステムを入れてデータベースの操作を行います
さきほどのSQLserverインストール終了画面の下に「SSMSのインストール」ボタンがあります。これを押すとSSMSのサイトに飛びます。
実はSSMSは一つ入れてすべての言語対応というものではなくて、なのであわててダウンロードしないでくださいね。デフォルトは英語です
そこで、ずっと下のほうにスクロールします。すると各言語対応が出てきますので、そこで「日本語」を選択してください。
ダウンロードしたら一度再起動しましょう
ダウンロードしたものはダウンロードフォルダにあるので、「SSMS-Setup-JPN.exe」を起動してください。
インストール画面が立ち上がります。「インストール」を押してインストールを開始してください
しばらくお待ちください
終了しました
起動してみましょう
「接続」を押すとつながります。正規版のSQLserverとは違いEXPRESSとしてつながります。
SQLserverの設定
デフォルトの状態でインストールができて、すでに裏で動いています。しかし、プログラムからさわるにはまだまだ設定があります
構成マネージャーを起動します。
SQLserverネットワーク構成のSQLEXPRESSのプロトコルをクリックします。TCP/IPが無効なのでここを変えます
まず無効を有効に変えます
再起動しろて出てきますが、まだ作業があるのでOKだけしておきます
TCP/IPのプロパティを開きます
IPアドレスタグの下のほうにスクロールします。IPALLを見ます
TCPポートを1433、動的ポートを消します。これでSQLserverのデフォルトの1433になります。ただこのポートはよく知られたポートなので攻撃の対象になるので動的ポートがあるのですが、今回は単純にしておきます
また再起動しろとでてきますが、これはパソコンの再起動ではなく、サービスの再起動です
サービスは実行中ですので
再起動します
SQLserver Browserの設定
C#やVBから接続するにはこのBrowserが動いていたほうがいいです。デフォルトでは止まっています
なので最初は無効になっています
右クリックしてプロパティを開きます
サービスタグの開始モードを無効から手動または自動に変えます
ログオンタグの開始が押せるようになりますので、押します
実行中になりました
データベースとテーブルを作ります
SQLserverを入れてSSMSまで入れたらデータベース
試しに体温テーブルを作ってみましょう
テーブルの入れ物であるデータベースを作ります。データベースの中にデータベースを作るというのもなんか変な感じですが、たとえばデータベーススペースという物だとしましょう。それが入れ物になります。
まずはSql Server Management Service(SSMS)を起動します。インストールしてあるのでメニューから選んでください
最初にログインが必要です。ユーザーは特に作っていませんので、Windows認証でLOGINします。
ではまずデータベーススペースを作りましょう。「データベース」の文字を右クリックして「新しいデータベース」を選択します
名前はなんでもいいのですが今回は「MyDb」とします。名前を入れてOKを押します
帰ってきたら更新を書けます。このSSMSは更新を掛けないと表示が最新になりません。
では、MyDbを展開して「テーブル」展開します
「テーブル」を右クリックして「新規作成」の「テーブル」を選択しましょう
テーブルの列の宣言の画面が開くので一つ目から入力していきます。一つ目は主キーでIDという名前にして、自動採番するように設定します。名前をID、型をintにして、NULLは許さないのでチェックを外します。
で、自動採番といって、主キーを作られた順に自動で作る仕組みにしますので、画面したの「列のプロパティ」の中の「IDENTITYの指定」を展開して、「IDである」をはいに変えます
続いて第2列の日付をedateという名前でdate型で作成します。第3列は体温でbtempという名前で、float型で作成します。
そして、重要な主キーの設定をします。IDの列を右クリックして「主キーの設定」を押します。
できたので左上の保存のアイコンをクリックして
名前を聞いてくるので「bodytemp」とします。
さきほどのデータベースと同じで更新しないと出てこないのでテーブルを更新します。
なにかデータを入れたいので、bodytempを右クリックして「上位200行の編集」をクリックします。
1列目のIDは自動採番なので入力しないで結構です。2列目、3列目にデータを入れて「TAB」キーを押せば確定します
c#のプロジェクトを作ります
やっと準備ができたので、c#のプロジェクトを作っていきますが、今回はプログラミングはありません。自動生成でコードを作って、データベースの中身が見えるところまでです。
新規にC#のプロジェクト作成
Visual Studioを立ち上げて、新しいプロジェクトを作成していきます。
新規プロジェクトを作成します。
従来の.NET Frameworkの方のformアプリケーションを選択します。似たものがいっぱいあるので間違わないようにしてください。
プロジェクトの名前を設定します。csForm47sqlとしました。
最初はデータソースがないので、左端にあるデータソースを選択します。「新しいデータソースの追加」を押します
最初の画面で左隅のデータベースを選択します。
次の画面でデータソースを選択します。
今回はデータソースとして、あらかじめ用意したbodytempテーブルをつないでいきますので、まず新しい接続を選択します。
接続の追加の画面では、接続するサーバーを探します。今回は自分に接続するのですが、まずは検索してみましょう。最新の情報に更新を押します
しばらく検索が続き、終わったらコンボボックスのなかに候補がでてきます。そこから自分の名前をクリックします。\\EXPRESSとでているのが無料版のSQLServerの名前です。
パソコン名が出てきてしまいますが、そのまま保存するとこのパソコンでしか実行できなくなるので、パソコン名の部分を「localhost」に書き換えて、自分あての接続にします。こうすればこのソースをどこに持って行っても自分宛でつながります。
下の方に方にある、「サーバー証明書を信頼する」にチェックをいれてください。
MyDbデータベースに接続するので、MyDbを選択します。
そして「テスト接続」を行って確認を行います。
OKを押して、次のページで接続文字をみるとこんな感じです。この接続文字でプログラムからも接続していきます
この接続文字は、保存されます
次のページで接続するテーブルを選択します
これでテーブルへの接続ができます。データソースを展開するとその中身が見えます
その中身をフォームにドラッグします。
この時、フォームの下に自動作成された接続用のオブジェクトがいっぱいできます。少しデータグリッドの幅を広げましょう。開始します
データベースの中身が画面に表示されます
ソースコードも自動生成されます。
Form上に表示されたナビゲータで保存をクリックすると、入力途中のものが固定化されてデータセット丸ごと保存されます。
また読み込み時にはテーブルアダプターのFillでデータベースの内容がデータテーブルに読み込まれます。またDataGRiViewがデータテーブルとBindingされてるので画面に表示されます。