今回もデータベースを扱うプログラムを
御紹介させていただければと思います。
御紹介させていただければと思います。
前回・前々回でSqlConnectionオブジェクトを利用し
データベースとの接続を確立する手順と
ConnectionStringプロパティに設定する文字列を
SqlConnectionStringBuilderオブジェクト使用し
作成する方法をそれぞれ御紹介いたしました。
今回は「SqlCommand」オブジェクトを使用し、
接続が確立されたデータベースに対し、
SQLコマンドを実行する方法を御紹介いたします。
接続が確立されたデータベースに対し、
SQLコマンドを実行する方法を御紹介いたします。
実際のシステムでは利用者が様々な情報を
データベースに登録・削除したり、
登録してある情報に対し検索したり集計したりするために
データベースに対して様々なSQLコマンドを実行し、
データベース内のデータを扱うことがありますが
下記の方法で各種SQLコマンドを実行し
データ操作を行うことが可能となります。
SQLコマンドを実行するには
SqlCommandオブジェクトの下記プロパティに値を設定し、
「ExecuteNonQuery」、「ExecuteReader」メソッドを呼び出すことで
SQLコマンド実行できます。
Connectionプロパティ SQLコマンドを実行する対象のデータベースへの接続した
SqlConnectionオブジェクトを設定します。
CommandTypeプロパティ CommandTextプロパティに設定した値を
どう評価するかを指定します。
CommandType列挙体の下記の値を設定します。
CommandType.Text SQLのテキストコマンドと評価します。
CommandType.StoredProcedure ストアドプロシージャ名と評価します。
CommandType.TableDirect テーブル名と評価します。
通常のSELECTやINSERT、DELETE、UPDATEなどのSQLコマンドを実行する場合、
CommandType.Textに設定します。
CommandTextプロパティ 実行するSQLコマンド・ストアドプロシージャ名・
テーブル名を設定します。
最低限SQLコマンドを実行するためには上記の3つのプロパティを設定します。
実際にSQLコマンドを実行する際は下記のメソッドを実行することで
Connectionプロパティに設定されたデータベースへの接続に対し、
CommandTextプロパティに設定されたSQLコマンドが実行されます。
ExecuteNonQueryメソッド SQLコマンドが実行され、
影響を受けたレコード数が返されます。
INSERTやUPDATE、DELETEなどの
データ操作を行うコマンドを実行する際は
こちらのメソッドを実行します。
ExecuteReaderメソッド SQLコマンドが実行された結果の
DataReaderオブジェクトが生成されます。
以上でデータベースのテーブルに対しSELECT文によるデータの取得や
INSERT・UPDATE・DELETEなどのデータ操作を行うSQLコマンドを実行できます。
サンプルで見てみましょう。
接続を確立する部分は前回の記事を参考にしてください。
前回記事のサンプルにある
「'###この部分にデータベース処理を記述します。###」の部分に
下記のサンプルが入ると思っていただければ結構です。
(変数の宣言などは除きます・・・。)
①SELECT文によるデータの取得
(CustomerTableテーブルから
CustomerID,CustomerNameを取得するサンプルです。)
Private Sub prcDataOperation()
Dim strCommand As String '実行するSQLコマンド
Dim redGetData As SqlDataReader 'SELECT文の結果を格納するオブジェクト
'実行するSQLコマンドを作成しておく
strCommand = "SELECT CustomerID, CustomerName FROM CustomerTable;"
Using cmdSQL As New SqlCommand
With cmdSQL
.Connection = conSQLConnect 'SQL接続を指定
.CommandType = CommandType.Text 'SQLのテキストコマンドと評価
.CommandText = strCommand '実行するSQLコマンドを指定
End With
.Connection = conSQLConnect 'SQL接続を指定
.CommandType = CommandType.Text 'SQLのテキストコマンドと評価
.CommandText = strCommand '実行するSQLコマンドを指定
End With
'SQLコマンドを実行しSqlDataReaderを生成
redGetData = cmdSQL.ExecuteReader
'###この部分にデータ取得後の処理を記述します。###
End Using
End Sub
②UPDATE文によるデータの更新
(ItemTableテーブルのItemCodeが15のデータの
ItemPriceを1,000に更新するサンプルです。)
Private Sub prcDataOperation()
Dim strCommand As String '実行するSQLコマンド
Dim strCommand As String '実行するSQLコマンド
'実行するSQLコマンドを作成しておく
strCommand = "UPDATE ItemTable SET ItemPrice = 1000 " &
"WHERE ItemCode = 15;"
Using cmdSQL As New SqlCommand
With cmdSQL
.Connection = conSQLConnect 'SQL接続を指定
.CommandType = CommandType.Text 'SQLのテキストコマンドと評価
.CommandText = strCommand '実行するSQLコマンドを指定
End With
.Connection = conSQLConnect 'SQL接続を指定
.CommandType = CommandType.Text 'SQLのテキストコマンドと評価
.CommandText = strCommand '実行するSQLコマンドを指定
End With
'SQLコマンドを実行
cmdSQL.ExecuteNonQuery()
cmdSQL.ExecuteNonQuery()
End Using
End Sub
以上がSqlCommandオブジェクトを使用しSQLコマンドを実行する方法です。
次回はSELECT文でDataReaderオブジェクトに取得したデータを
プログラム上で利用する方法を御紹介できればと思います。
End Sub
以上がSqlCommandオブジェクトを使用しSQLコマンドを実行する方法です。
次回はSELECT文でDataReaderオブジェクトに取得したデータを
プログラム上で利用する方法を御紹介できればと思います。
今回も簡単な御紹介となっておりますので、
MicroSoftのドキュメントなども参考にしていただければ幸いです。
また、SQLの文法や様々なテクニックも今後御紹介できればと思います。
他にもいろいろと方法もございますし、
開発するシステムによっては、よりふさわしい方法もあるかと思いますが、
御参考にしていただければと思います。
サンプルはVB.NETで作成しておりますが、
考え方はどんな言語でも同じですので、
参考にしていただければと思います。
0 件のコメント:
コメントを投稿