VB.NET入門 SQLServerへの登録と読込 SQL

vb.net入門 データベースへの書き込みと読込
アプリケーション開発では必ずといっていいほど必要になってくるデータベース操作。
今日は、vb.net入門者の方向けにSQLServerのテーブルへのデータの書きこみと読込方法を紹介します。

SampleDB内に「TM商品マスタ」テーブルが存在するものとします。
テーブル内容は商品IDと商品名のみで、商品IDのIDENTTYを「はい」として、オートナンバーを自動的に振るようにします。
なお、このようにIDを自動的に振る場合、プログラムで商品IDを格納することはできなくなります。

150120_DB00

以下のフォームを作成して、「新規作成」と「読込」ボタンを用意します。

150120_DB02

それでは、レコードの追加から行ってみます。

フォーム起動時にデータベースへの接続文字列を生成しています。
INSERT文を生成して、商品名に「みかん」、単価に「100」を格納しています。
商品名はVarcharですので、シングルクォーテーションでくくらなければなりません。
cmd.ExecuteNonQuery()で更新をかけます。
この例では、クリックした数だけ、新規行がどんどん追加されます。


Public Class Form1

    Dim m_sql_connection_str As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '接続文字列の生成 
        Dim server_name As String = "localhost" 'またはIPアドレス
        Dim user_name As String = "tarou"
        Dim password As String = "123456"
        Dim conn_str As String = ""

        'インスタンス名は、HANAKO_PC\SHOP_DATABASE など
        m_sql_connection_str = "Server=インスタンス名;Connect Timeout=20;User ID=" & user_name & ";Pwd=" & password & ";Database=SampleDB"
       

   
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'データの新規追加
        Dim sql_str As String
        sql_str = "INSERT INTO TM商品マスタ (商品名,単価) VALUES ('みかん',100)"

        Dim conn As New SqlClient.SqlConnection(m_sql_connection_str)
        conn.Open()
        Dim cmd As New SqlClient.SqlCommand(sql_str, conn)

        Dim rec_count As Integer
        rec_count = cmd.ExecuteNonQuery()
        conn.Close()

        If rec_count > 0 Then
            MsgBox("登録できました。", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'SQL文の生成
        Dim sql_str As String = "select * from TM商品マスタ"

        Dim data_set As New DataSet
        Dim adpt As New SqlClient.SqlDataAdapter(sql_str, m_sql_connection_str)
        'データセットを渡して結果セットを受け取ります。そのとき取得した結果セットに名前を付けます。ここではsample_table1
        adpt.Fill(data_set)

        Dim i As Integer
        For i = 0 To data_set.Tables(0).Rows.Count - 1
            Console.WriteLine(data_set.Tables(0).Rows(i).Item("商品ID") & " " & data_set.Tables(0).Rows(i).Item("商品名") & "")
        Next

    End Sub


End Class

お次は読込です。
DataSetオブジェクトを準備して、adpt.fillでクエリの結果をDataSetオブジェクトdata_setに格納してもらいます。

カテゴリー: SQL パーマリンク