
エンジニア転職24日目
こんにちは、コリーです。
24日目の今日は、
VB.NET
社員情報フォーム作り(3)
をやりました。
クラスを使う
月曜日に、「VB.NETとSQLserverがどうやって繋がっているのかわからないままになっている」という旨を書きました。昨日今日と何度も使っているうちに、その点についても徐々に掴めてきたので、書こうと思います。
プログラミングは急に文字が増える
クラスとは、予め用意される記述の型で、必要があればその型を使わせてもらって(インスタンス化)、楽をしようというものです、きっと。
あ、チョッと違いますね、、
“クラスとはデータ構造を作る仕組みで、クラスを使うと新しいデータ型を作ることができます。
よくクラスは、オブジェクトを作る設計書と説明されます。”
(【初心者向け】クラスとは何か?)
クラスはたこ焼き器、インスタンスがたこ焼き、オブジェクトはその両方を指す、なんて例えもありましたね。そんなこんなで、
dim (変数名) AS NEW (クラス名)
の宣言でインスタンス化され、僕たちが扱えるようになります。newがインスタンス化を行う演算子になっているようです。
また、このときに各クラスで使えるプロパティやメソッドもセットになって手に入るわけですが、これが大変です。便利なのは分かっているのですが、急に「.」で繋がる文字が増えるので、コードの見本やサンプルを見たときに「え、なにこれ?!わかんないわかんないわかんない!」となるのは初心者あるあるではないでしょうか。
今日使ったクラス
SqlCommand
→SQL Server データベースに対して実行する Transact-SQL ステートメントまたはストアドプロシージャを表します。
SqlConnection
→SQL Server データベースへの接続を表します。
(SqlCommand クラス (System.Data.SqlClient) | Microsoft Docs)
今日主に使っていたのは、この2つです。クラスの説明は、Windowsサイト(本家本元)では英文を翻訳にかけて日本語で表示しているっぽいので、文章が若干変になってますね。
イメージを掴むためにざっくり言い換えると、
SqlCommndは、VB.NETで扱うSELECTやUPDATEなどのSQL文を、SQLserverに伝えてやり取りをしてくれる伝言役。
Sqlconnectionは、VB.NETとSQLserverのデータテーブルを繋げてくれる接着剤。
(あくまで個人の見解です、悪しからず。)
データを繋げるために
ちなみに、今日の課題で使ったメソッドやプロパティは、以下のようになります。
Dim master as new SqlClient.SqlConnection
Dim strSQL as string
Dim cd as new SqlClient.Sqlcommand
…
master.ConnectionString = "データベース接続文字列"
master.Open()
SQL文作成…
cd.CommandText = strSQL
cd.Connection = maater
cd.ExecuteNonQuery()
'クローズ解放
cd.Dispose()
master.Close()
maater.Dispose()
SqlClient
先ほどのクラスより前に出てきたこれは、【名前空間】というクラスをまとめてるやつ。
ConnectionString
SQLserverのデータテーブルに対応する「接続文字列」を設定する
Open()
データテーブルを開く
CommandText
SQLserverに送るSQL文を設定する
Connection
これが実は厄介で、SqlconnectionクラスでなくでSqlCommndのプロパティなんですよね。
意味は、このSqlCommndのインスタンスで使用するSqlConnectionを取得または設定なので、上のコードでは、cd.Connection = maaterで設定されています。結局、SqlCommndを使ってSQLserverに問い合わせるため、情報をまとめていく必要があるのでしょう。
ExecuteNonQuery()
接続に対してSQL文を実行し、影響を受けた行数を返します。
Dispose()
メモリの解放
Close()
閉じる
最後が少し雑になってしまいました。
ねむいですね
おわり