訪問して頂きありがとうございます。まさふくろーです。
この記事では、テーブルにレコードを追加する方法をご紹介します。
目次
テーブルにレコードを追加する
New OleDbCommand()
インスタンス化したOleDbCommand.CommandText = 実行するSQL文
インスタンス化したOleDbCommand.ExecuteNonQuery()
New SqlCommand() インスタンス化したSqlCommand.CommandText = 実行するSQL文 インスタンス化したSqlCommand.ExecuteNonQuery()
INSERT INTO テーブル名( 列名1 [ , 列名2 ]・・・) VALUES ( 値1 [ , 値2 ]・・・ )
サンプルプログラム
OleDbCommandクラスを使用する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Dim prov As String = "SQLOLEDB" Dim serverName As String = "TEST-PC\SQLEXPRESS" Dim dataBase As String = "AdventureWorksLT2017" Dim userid As String = "test" Dim pwd As String = "test" Using conn As New OleDb.OleDbConnection() conn.ConnectionString = " Provider = " & prov & ";Data Source = " & serverName & ";Initial Catalog = " & dataBase & ";User ID = " & userid & ";Password =" & pwd conn.Open() Using cmd As New OleDb.OleDbCommand() cmd.Connection = conn cmd.CommandText = "INSERT INTO SalesLT.Product ( " & ControlChars.NewLine & " Name " & ControlChars.NewLine & " ,ProductNumber " & ControlChars.NewLine & " ,StandardCost " & ControlChars.NewLine & " ,ListPrice " & ControlChars.NewLine & " ,SellStartDate) " & ControlChars.NewLine & "VALUES ( " & ControlChars.NewLine & " ? " & ControlChars.NewLine & " ,? " & ControlChars.NewLine & " ,? " & ControlChars.NewLine & " ,? " & ControlChars.NewLine & " ,?) " cmd.Parameters.Add("@Name", OleDb.OleDbType.VarChar, 50).Value = "test" cmd.Parameters.Add("@ProductNumber", OleDb.OleDbType.VarChar, 25).Value = "abc" cmd.Parameters.Add("@StandardCost", OleDb.OleDbType.Double).Value = 100 cmd.Parameters.Add("@ListPrice", OleDb.OleDbType.Double).Value = 200 cmd.Parameters.Add("@SellStartDate", OleDb.OleDbType.Date).Value = "2020/05/27" cmd.ExecuteNonQuery() End Using Label1.Text = "Productテーブルにレコードを追加しました。" End Using Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「テーブルにレコードを追加」ボタンクリック時に以下処理を行う。 |
6~10 | 接続先データベースの情報を、変数に代入。 |
12 | OleDbConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
14~19 | ConnectionStringプロパティにデータベース情報を設定。 |
21 | データベースに接続。 |
23 | OleDbCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
25 | SQL文を実行するために、14~19行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。 |
27~39 |
レコードを追加するSQL文をCommandTextプロパティに設定。 |
35~39行目の「?」マークは、以下41~45行目で設定するパラメータを使用する際に記述します。 | |
41 | 「Product」テーブルの「Name」列に、値「test」を設定する。 |
42 | 「Product」テーブルの「ProductNumber」列に、値「abc」を設定する。 |
43 | 「Product」テーブルの「StandardCost」列に、値「100」を設定する。 |
44 | 「Product」テーブルの「ListPrice」列に、値「200」を設定する。 |
45 | 「Product」テーブルの「SellStartDate」列に、値「2020/05/27」を設定する。 |
47 | SQL文を実行する。 |
51 | 処理が正常に終了したら、正常終了のメッセージをラベルに表示。 |
55 | 処理の実行中にエラーが発生した場合、 |
57 | エラー内容を取得し、ラベルに表示する。 |
SqlCommandクラスを使用する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Dim serverName As String = "TEST-PC\SQLEXPRESS" Dim dataBase As String = "AdventureWorksLT2017" Dim userid As String = "test" Dim pwd As String = "test" Using conn As New SqlClient.SqlConnection() conn.ConnectionString = " Data Source = " & serverName & ";Initial Catalog = " & dataBase & ";User ID = " & userid & ";Password =" & pwd conn.Open() Using cmd As New SqlClient.SqlCommand() cmd.Connection = conn cmd.CommandText = "INSERT INTO SalesLT.Product ( " & ControlChars.NewLine & " Name " & ControlChars.NewLine & " ,ProductNumber " & ControlChars.NewLine & " ,StandardCost " & ControlChars.NewLine & " ,ListPrice " & ControlChars.NewLine & " ,SellStartDate) " & ControlChars.NewLine & "VALUES ( " & ControlChars.NewLine & " @Name " & ControlChars.NewLine & " ,@ProductNumber " & ControlChars.NewLine & " ,@StandardCost " & ControlChars.NewLine & " ,@ListPrice " & ControlChars.NewLine & " ,@SellStartDate) " cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = "test" cmd.Parameters.Add("@ProductNumber", SqlDbType.VarChar, 25).Value = "abc" cmd.Parameters.Add("@StandardCost", SqlDbType.Money).Value = 100 cmd.Parameters.Add("@ListPrice", SqlDbType.Money).Value = 200 cmd.Parameters.Add("@SellStartDate", SqlDbType.Date).Value = "2020/05/27" cmd.ExecuteNonQuery() End Using Label1.Text = "Productテーブルにレコードを追加しました。" End Using Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「テーブルにレコードを追加」ボタンクリック時に以下処理を行う。 |
6~9 | 接続先データベースの情報を、変数に代入。 |
11 | SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
13~17 | ConnectionStringプロパティにデータベース情報を設定。 |
19 | データベースに接続。 |
21 | SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
23 | SQL文を実行するために、13~17行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。 |
25~37 |
レコードを追加するSQL文をCommandTextプロパティに設定。 |
33~37行目の「@」マークは、以下39~43行目で設定するパラメータを使用する際に記述します。 | |
39 | 「Product」テーブルの「Name」列に、値「test」を設定する。 |
40 | 「Product」テーブルの「ProductNumber」列に、値「abc」を設定する。 |
41 | 「Product」テーブルの「StandardCost」列に、値「100」を設定する。 |
42 | 「Product」テーブルの「ListPrice」列に、値「200」を設定する。 |
43 | 「Product」テーブルの「SellStartDate」列に、値「2020/05/27」を設定する。 |
45 | SQL文を実行する。 |
49 | 処理が正常に終了したら、正常終了のメッセージをラベルに表示。 |
53 | 処理の実行中にエラーが発生した場合、 |
55 | エラー内容を取得し、ラベルに表示する。 |
関連記事
テーブルのレコードを更新
テーブルのレコードを削除
トランザクション処理
データベースに接続
Usingステートメント
【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する
構造化例外処理
最後まで読んでいただき、ありがとうございました!