データベース: 2020年7月アーカイブ

VisualBasic から ADO.NET を使用して SQL Server に接続・使用する簡単な例。

SQL Server のインストールや、DB作成、TABLE作成は済んでいること。

(1) データソースの選択と、DB接続設定を行う

    • [表示]→[サーバーエクスプローラー] でサーバーエクスプローラーを表示する。
    • サーバーエクスプローラー上にある DB アイコン(データベースへの接続)をクリック。
    • 「データソースの選択」ダイヤログが開くので、データソースで「Microsoft SQL Server」を選択。データプロバイダーは「.NET Framework SQL Server用データプロバイダー」を選択する。[続行]ボタン押下。
    • 「接続の追加」画面が開くので、「サーバー名」を設定。サーバ名がわからなければ SQL Server Management Studio 等で調べる。うちの場合は「XVIDEOS\SQLEXPRESS」。XVIDEOS は PC名。(一覧から選択するのかと思ったが、フルに手入力しないといけなかった)
    • 「サーバにログオンする」の「認証」を「SQL Server 認証」に変更する。ユーザ名とパスワードが入力可能になるので入力。(あらかじめ SQL Server Management Studio で作成したもの)
    • 「データベースへの接続」の「データベース名の選択または入力」を選択。DB名を入力する。
    • 画面下の「テスト接続」ボタンを押してみて正常に接続されれば「OK」ボタン押下。(うまくいかなければ、DB名やユーザアカウント、パスワードが間違っていないか?)

(2) データソースの登録

    • [表示]→[その他のウィンドウ]→[データソース]でデータソースウィンドウを表示。
    • データソースウィンドウの上の一番左の DB アイコン(データソースの追加)をクリック。
    • 「データソースの種類の選択」画面で「データベース」を選択し「次へ」ボタン押下。
    • 「データベースモデルの選択」画面で「データセット」を選択して「次へ」ボタン押下。
    • 「データ接続の選択」では、対象の「データ接続」を選択し、「はい。重要情報を接続文字列に含めます」を選択し「次へ」ボタン押下。
    • 「接続文字列をアプリケーション構成ファイルに保存する」画面では、そのまま「次へ」ボタン押下。
    • 「データベースオブジェクトの選択」画面では、プログラムから参照する TABLE などをすべて選択する。「完了」ボタン押下。

(3) プログラム開発

サンプル用に、超簡単なプログラムを作る。
ID と NAME という項目を持つ m_user という TABLE を参照し、NAME を画面に出すというプログラム。
例えば、ID='admin' の NAMEは'偉い人'である。

20200701_VB1.jpg

開発する画面は「IDを入力し『参考』ボタン(・・・参照と打ったつもりなのに(^^;)を押すと、下に『名前は○○です』」と表示する」という単純なもの。

「参考」ボタンの Click イベントのソースを下記のとおり書いた。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim sql As String

        'SQLステートメント
        sql = "SELECT name FROM m_user WHERE id='" & TextBox1.Text & "'"

        Label1.Text = ""

        'コネクション指定
        Using connection As New SqlClient.SqlConnection(My.Settings.nandfConnectionString)

            'データコマンドを定義する
            Using command As New SqlClient.SqlCommand(sql, connection)

                'コネクションを開く
                connection.Open()

                'データリーダの生成
                Dim dr As SqlClient.SqlDataReader = command.ExecuteReader()

                'データが存在する場合、label1にセット
                '検索結果は1件だけ
                Do While dr.Read
                    Label1.Text = "名前は " & dr("name") & " です"
                Loop

                'データリーダを閉じる
                dr.Close()

                'コネクションを閉じる
                connection.Close()

            End Using

        End Using

    End Sub

いやあ、ADO.NET はデータソースの選択までのアレコレが煩わしいね。まあ、おかげでソースを書くのは楽なんだけど(笑)

それより、うーむ・・・まだ 5年前にやった VB.NET 案件で DB 利用をどのようにコーディングしたか思い出せない。なんとなく、インタフェースは ADO.NET だったような気がするが・・・
SQL Server に接続して DB を新しく作ったり色々と操作をお個合うためのツールが「SQL Server Management Studio」(SSMS)である。
今回、v18.5.1 をインストールした。

んが、起動してみると英語表記である。日本語になっていない。まあ、DB に関することだから英語でも使えなくはないが、やはり設定画面等は日本語の方が使い易い。英語苦手なもんで(^^;;;

 20200701_SQLManagement1.jpg

というわけで、[Tools]→[Options]→[Environment]→[International Setting] と設定画面を進み、 Language を「Same as Microsoft Windows」にしてみた。
多分、「Windows と同じ言語」ってことだろうなあと。
「Changes to the language setting will not take effect until the environment is restarted.」と言われたので、念の為 Windows の再起動までしてみたのに・・・

英語のままやんけ(^^;;;

調べてみると、なんか、SSMS は簡体中国語、繁体中国語、英語 (米国)、フランス語、ドイツ語、イタリア語、日本語、韓国語、ポルトガル語 (ブラジル)、ロシア語、スペイン語それぞれのインストーラーがあるようだ・・・


というページの、最初に出てきた「SQL Server Management Studio (SSMS) のダウンロード」というリンクからダウンロードをすると、SSMS-Setup-ENU.exe という英語版のインストーラーになっていた・・・。ページのもっと下の「日本語」というリンクをクリックすれば、SSMS-Setup-JPN.exe という日本語版がダウンロードされるようである・・・

一旦、英語版をアンインストールし、日本語版をインストール。これで無事、日本語版の SSMS が使えるようになった。

 20200701_SQLManagement2.jpg

ただ、英語版だと接続時にサーバ名が自動でセットされていたが、日本語版は自分で参照しないといけなかった。
しかし、次の接続からはちゃんと前回選択した DB がディフォルトでセットされるので問題なしである。
今度、SQL Server を使った開発を行うことになりそうなので、自習用に SQL Server 2019 Express をインストールした。

VB.NET + SQL Server という開発は今までにもしたことがあるのだが、環境は全部お客さんんところで用意してもらって、正直、接続先の DBMS が SQL Server だろうが Oracle だろうがあまり意識することのない案件だった。ひたすら、VB.NET のソースを書いていた感じだ。
今回はもしかしたらある程度自分で環境をさわる可能性もあるので、インストールから簡単な VB.NET 側からの接続まで自宅環境で試してみようかなっと。

OS は Windows 10 Pro バージョン 1909 である。

で、インストールして「SQL Server 2019 構成マネージャー」で起動確認をしようとすると・・・

20200701_sql_server1.jpg

「都道府県」は「実行中」とな?(^^;;;;

いや・・・「都道府県」って・・・

本来、「状態」という列名のはずが、「都道府県」になってる・・・。なんでやねん!?(^^;

調べてみると、これ、すでに話題になっている有名な話なのね(笑)。誤訳だそうだ・・・
State は「状態」なのに、「国家」や「州」の State のつもりで訳しちゃったのね(笑)。

じゃあ、どうやったら直るか・・・だが、情報ないなあ・・・。次のアップデートで修正されるとかかね?まあ、構成マネージャーもそんなに使わないので、知らないうちに直ってそう。

ところで、全然別件だが、俺は数字の中で「4」が一番好きである。多分、このブログでも書いたことあるんじゃないかな?
で、現在起動している SQL Server のプロセス ID が 4444 である。ああ、幸せ(笑)

このアーカイブについて

このページには、2020年7月以降に書かれたブログ記事のうちデータベースカテゴリに属しているものが含まれています。

前のアーカイブはデータベース: 2019年6月です。

次のアーカイブはデータベース: 2021年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら