VB.NETを使ってMySQLからデータを取得してデータグリッドに表示するまでを休日に試してみました。
といっても、朝一、Visual Studioのインストール、朝食、朝から子供の送り迎え、昼食、Huluの映画(猿の惑星)消化、洗車、昼寝をして18:00にはデータが表示できていました。
僕は、VB.NETに関してははっきり言って、詳しくありません。
社内SEをしていた頃に、それなりのもの(業務で使えるもの)を何か作ったのですが、思い出せませんでした。
ただ、ITエンジニアとして、他の言語や環境作りはちょくちょくやってきましたので、ある程度の勘はあります。
僕が調べた流れがわかるだけでも、初心者の方がこれからプログラムを学ぶことに対して、役に立てばといいと思っています。
ちなみに、ITエンジニアの本職を離れて、2年以上経過しています。
で、この記事は有益な外部サイトのリンクを貼って詳しく書いてないところが多々あります(;^_^A
参考サイトのままでは、動かなかったところは記述しています。
とりあえず、こんな感じで調べているというのも、わかればいいと思います。
僕が、今日やったことは次の2つです。
- フォームにボタンとテキストボックスを追加
- MySQLのデータをデータグリッドに表示
まずは、フォームアプリケーションを作るために、Visual Studioのインストールからはじめます。
この記事の内容
Visual Studioのインストール
Visual Studioはマイクロソフトの開発環境です。VB.NETだけでなく、C#での開発などもできる、統合開発環境です。
JAVAを使ったことがある人なら、Eclipseという開発環境を使っている人が思います。EclipseもJavaだけでなく、他の言語にも対応しています。
早速、Visual Studioをインストールしますが、無償で使える「Microsoft Visual Studio Community 2019」をインストールしました。
追記:2022年6月20日
→今は2022がダウンロードできます
インストールURL:https://visualstudio.microsoft.com/ja/vs/
フォームアプリケーション作成
詳細は割愛しますが、こんな流れで作ります。
1.適当な名前でプロジェクトを作成。
2.画面上のプロジェクト→フォームの追加
3.画面左のツールボックスからボタンとテキストボックスの配置
4.ボタンを押したら、テキストボックスに「Hello World」を表示
まずは、「Hello World」からでしょう、ということですぐに作れると思ったのですが、ちょっとつまずきました。
1.適当な名前でプロジェクトを作成
プロジェクトは「hajimete」という名前を付けました。
練習用なので、なんでも構いません。
2.画面上のプロジェクト→フォームの追加
ボタンやテキストボックスを配置するには、フォームを追加する必要があります。
メニュー(画面上部)のプロジェクトからフォームの追加をクリックして、フォームを追加します。
3.画面左のツールボックスからボタンとテキストボックスの配置
Visual Studioの左端に「ツールボックス」というのがあります。
そこから、ボタン(Button)とテキストボックス(TextBox)を追加しました。
ツールボックスが表示されてない場合は、「ウィンドウ→ウィンドウレイアウトのリセット」で、ウィンドウが初期化され表示されます。
4.ボタンを押したら、テキストボックスに「Hello World」を表示
今回は単純に、ボタンを押したら、テキストボックスに「Hello World」という文字を表示するだけの動作です。
フォームのデザイン画面から、追加したボタンをダブルクリックすると、ソースコードが表示されます。
そのソースコードに、次を追加しただけです。
tmsg.Text = "Hello World"
tmsgというのは、テキストボックスの名前ですね。そして、「.Text」というのを追加しないと、正しく文字列がセットされません。
TextはVBでいうところの、プロパティですね。ソースから動的にプロパティをセットしています。
つまずいたところ
「プロジェクト→プロパティ」からスタートアップオブジェクトをForm1(今回のフォーム名はデフォルトのForm1)に設定しないと、コンパイルエラーとなります。
「Sub Mainがみつかりません」みたいなエラーです。
VB.NETからMySQLへ接続
僕の他のサイトでは、WordPressからPHPでサーバー上のMySQLへ接続して、検索画面から一覧を表示するプログラムを作っています。
今回は、VB.NETからMySQLへ接続してみます。
但し、今回はローカル環境(このPC)へMySQLをインストールして、接続します。
サーバー上のMySQL接続はまた今度したいと思います。
参考にしたサイト:https://www.dbonline.jp/mysql/install/
MySQLのインストール~環境変数の設定は、上記サイトを参考にしました。
このページで追記することはありません。非常に参考になります。
MySQLのインストールには、Oracleへのユーザー登録が必要になるかもしれません。
MySQLへデータを追加
MySQLのインストールが終わっただけでは、VB.NETから参照したいデータがありません。
「データを1から作らないとダメなの?」
それは、メンドクサイですね。
今回は、MySQLのサンプルデータを使うことにしました。
参考にしたサイト:https://qiita.com/kuwazzy/items/5cc0a3bc9d5ceec528e6
「インストールが終了するとMySQL Workbenchが起動します・・・」のところからでOKです。
MySQLをインストールしたら、勝手にワークベンチというのが起動されています。
僕の場合は一旦終了させて、スタートボタンから「MySQL WorkBench 8.0 CE」を起動したら、上記参考サイトと同じ画面になりました。
後は、上記サイトの通りでOKでした!
VB.NETのサーバーエクスプローラーにデーターベース追加
Visual Studioには、サーバーエクスプローラーというのがあり、ここにMySQLのサンプルデータベースを登録することによって、データの中を見ることができます。
他にも何かできそうですが、今のところはよくわかっていません。
データベースのデータを参照するツールを知らないなら、設定しておいた方がいいです。
①:下図の赤枠をクリック
②:接続情報を設定
Server name:このPCにインストールしたMySQLへ接続するのでlocalhostとなります。
User name:ユーザーは特に追加してないので、今回はrootを利用します。
Password:MySQLをインストールしたときに作ったrootのパスワード。
Database name:「Sakila」というのは、MySQLのサンプルデータベースです。
③:データを表示してみる
下図のように、actorテーブルを右クリック→データの取得をクリック
データが表示されましたね。
これで、サンプルデータのデータを参照することができます。
僕が作ったデータではないので、なんとなくモザイクをかけています。
VB.NETからMySQLのデータを取得して表示
さぁ、いよいよ、MySQLのデータをVB.NETから取得して、フォーム上の表示します。
表示するのは、VB.NETのデータグリッドというのを使います。
コントロールを追加するだけで、SQL文で取得したデータが一覧で表示されます。
そこも、含めて、以下の参考サイトをコピペしただけです。
参考サイト:VB.NETでMySQLに接続
参照設定の追加
上記ソースだけではコンパイルエラーとなります。(執筆時点)
まずは、参照設定を追加します。
「プロジェクト→参照の追加」から、次の2つを追加します。
MySql.DataとSystem.Dataです。
MySql.DataはMySQLのインストールで追加されます。もし、表示されないなら、意図的に外した可能性があります。
ソースの追記
ソースは、次の一文を追記します。
Imports System.Data
情けないですが、上記一文を追記せずに、コンパイルエラーとなり悩んでいました。
「Imports System.Data」を追記しないと、次のところでコンパイルエラーとなります。
Dim Ds As New DataSet
「DataSetが定義されてないよ」というエラーです。
参照はできるように設定したけど、ソース上で使えるようにしてない(Importしてない)からでした。
ソースの修正
ソースは二カ所修正しました。
①:MySQL接続先の変更
Builder.Server = "localhost" Builder.Port = 3306 Builder.UserID = "root" Builder.Password = "mypan4" Builder.Database = "sakila"
②:SQL文修正
Dim SqlStr = "select * from actor limit 10"
サンプルデータベースにある、actorテーブル(from actor)の全ての列(*)を、10行だけ(limit 10)取得(select)する。というSQL文です。
以上で、ソースの修正は終わりです。
VB.NETのプログラムを実行
プログラムの実行はVisual Studioウィンドウ上部にある「▶開始」ボタンから実行します。
①:実行したらサンプルデータのデータが表示されます。
データを取得してデータグリッドにセットする処理が、フォームロードイベントに記述されているため、フォームが表示されたらデータも表示されます。
②:ボタンをクリックしたら「Hello World」がテキストボックスに表示される
理解できなかった20代でIT業界未経験のあなたへ
この内容がイマイチ理解できなかった20代のあなたへ。
それはただ単に経験の差だけです。
突然ですが、
「未経験入社の女性が急に大声で歌いだした話」
に少しお付き合いください。
独学だけで完全未経験の彼女はC言語の本を読んで勉強しといて。
こんな感じで、一冊の本を教育係のできる30代男性に渡されました。
「ちょっと厳しんじゃない」
僕はそんな感じで彼女を見ていましたが、来る日も来る日もC言語の本を読んでるだけ。
決して容姿がイマイチとかじゃなくて、どちらかというときれいな人。
一緒に休憩室で休憩していると、彼女はいきなり大声で歌うかのように叫び始めたんです。
「終わった」
僕はそう思いました。
案の定、数か月で彼女は退職してしまったのです。
何がいいたいかというと、
「独学では実務で通用しない」
ちょっと厳しいようですが、これが現実なんです。
もちろん、同じような他言語とかに精通しているなら話は別です。
独学のデメリット
独学だけではタイミング悪ければついていけなくなります。
彼女は運も悪く、すごく忙しいときに入社したので、あまり構ってもらえなかった。
でも、教育係が忙しいという現実は普通にあります。
当時は僕も徹夜することもありました。主婦も徹夜してました。
もうひとつ、例を上げますね。
ある中堅のSEがJavaは勉強もしているということで、プロジェクトに参加。
しかし、その彼も独学でJavaを勉強した程度だったので、まったく任せられない。
その彼も、翌月にはプロジェクトからいなくなっていました。
※人はよかったので送別会はしましたよ
別に独学するのは立派ですし、僕も独学はしてきました。
ただ、独学レベルでは実務で到底役に立たない。
こう思っておくのが正しい心構えです。
そして、プロジェクト先は優しい先輩だけではないんです。
なので、情報系の学部や学校出身でもないのに、
独学だけでいきなり就職するのはおすすめしません。
プロの現役SEから習うメリット
もし、知り合いにプロの現役SEでもいればベスト。
少しお金払って教えてもらってください。
現役SEなら、プログラミングで重要なこと。
現場で必要となる重要な知識。
なんてことを教えてもらいます。
例えば、
SQLは使えて当たり前。
DBのチューニングを知らない人は多い。
試験(テスト)データづくりがメンドクサイ。
でも、そう簡単に身につく技術じゃありません。
なので、知り合いは教えることをたぶん嫌がります。
現役SEが教えているスクールに入る
間違っても、現役じゃない人から教えてもらわないでください。
このIT業界は進化が著しく早いからです。
僕なんか、パイソンなんか綴りも覚えてないぐらい知りません。
なので、カタカナで書きました・・・
とりあえず、オンラインスクール一番おすすめなのはCode Campです。
8%の難関を突破した現役のエンジニア講師がマンツーマンで教えてくれます。
就職してからは、何時間もマンツーマン指導はありません。
そして、Code Campは300社以上の企業研修にも利用されています。
LINEもニトリもUSENもCode Campの研修を採用。
専門学校に通うと集団授業でも200万弱の費用がかかります。
Code Campは現役エンジニアの講師がマンツーマン付きの割には破格です。
コースも色々ありますが、僕は一度就職した方がいいと思います。
今後、副業やフリーでするにしても、先輩に色々教えてもらった方がお得です。
いい会社だったら、正社員で働きながら副業した方が将来設計もしやすい。
なので、コースは「Code CampGATE」がおすすめ。
たったの4カ月で実務レベルまで導いてくれます。
中でも、チーム開発演習はすごい。
実務の開発はチームで進めます。
いきなり開発現場に入ったら、ソース管理とかに他にも覚えることたくさんあります。
チーム開発演習でチーム開発を経験済みなら就職しても怖くない。
ただ、勘違いしてほしくないのは、あなたに意欲がなかったら、やめた方がいいです。
いくら講師がよくても、実際にやるのはあなたですから・・・
でも、独習だけで運よく就職して、20代の彼女のようになってもらいたくないんです。
とりあえず、無料カウンセリングを受けてから、受講を決定するのをおすすめします。
文系の子供が、急に「IT業界で働きたい」と言い出したら、間違いなくCode Campです。
もちろんフォローはしますけど・・・。
まとめ
VB.NETははっきり言って初心者レベルです。
だからこそ、つまずいた点なども記載していますので、参考になるのではないかと思います。
まったく経験がないわけではないですが、今回もたぶん同じところでつまずきました。
このページだけで、DB接続まで完了するので、VB.NETをこれから勉強したい人には環境作りが一通り終わり、あとはひたすらコードを書いて覚えるだけです。
僕も、これからもう少し勉強したいと思います。
数時間でここまでできたのも、参考にさせていただいたサイトのおかげです。
とはいえ、ちゃんとVB.NETを勉強するには、本を買った方が体系的に勉強できていいと思います。
僕は、とりあえずKindle Unlimited(0円)本を買いましたよ。
初学者の方で、本気に就職を考えているなら、Code Campが早道です。