Vb.net-database-access

提供:Dev Guides
移動先:案内検索

VB.Net-データベースアクセス

アプリケーションはデータベースと通信し、まずデータベースに保存されたデータを取得してユーザーフレンドリーな方法で表示し、次にデータベースにデータを挿入、変更、削除して更新します。

Microsoft ActiveX Data Objects.Net(ADO.Net)は、データの取得、アクセス、更新のために.Netアプリケーションで使用される.Netフレームワークの一部であるモデルです。

ADO.Netオブジェクトモデル

ADO.Netオブジェクトモデルは、さまざまなコンポーネントを通る構造化されたプロセスフローに他なりません。 オブジェクトモデルは図式的に次のように記述できます-

ADO.Netオブジェクト

データストアまたはデータベースにあるデータは、*データプロバイダー*を介して取得されます。 データプロバイダーのさまざまなコンポーネントは、アプリケーションのデータを取得し、データを更新します。

アプリケーションは、データセットまたはデータリーダーを介してデータにアクセスします。

  • *データセット*は、切断されたキャッシュにデータを保存し、アプリケーションはそこからデータを取得します。
  • *データリーダー*は、読み取り専用モードおよび転送専用モードでアプリケーションにデータを提供します。

データプロバイダー

データプロバイダーは、データベースへの接続、コマンドの実行、データの取得、データセットへの保存、取得したデータの読み取り、データベースの更新に使用されます。

ADO.Netのデータプロバイダーは、次の4つのオブジェクトで構成されています-

Sr.No. Objects & Description
1

Connection

このコンポーネントは、データソースとの接続を設定するために使用されます。

2

Command

コマンドは、データソース内のデータを取得、挿入、削除、または変更するために使用されるSQLステートメントまたはストアドプロシージャです。

3

DataReader

データリーダーは、読み取り専用モードおよび転送専用モードでデータソースからデータを取得するために使用されます。

4

DataAdapter

データはデータアダプターを介してデータベースとの間で転送されるため、これはADO.Netの動作に不可欠です。 データベースからデータセットにデータを取得し、データベースを更新します。 データセットに変更が加えられると、データベースの変更は実際にデータアダプターによって行われます。

ADO.Netには、次の種類のデータプロバイダーが含まれています。

  • SQL Server用の.Net Frameworkデータプロバイダー-Microsoft SQL Serverへのアクセスを提供します。
  • OLE DB用の.Net Frameworkデータプロバイダー-OLE DBを使用して公開されたデータソースへのアクセスを提供します。
  • ODBC用の.Net Frameworkデータプロバイダー-ODBCによって公開されるデータソースへのアクセスを提供します。
  • Oracle用の.Net Frameworkデータプロバイダー-Oracleデータソースへのアクセスを提供します。
  • EntityClientプロバイダー-Entity Data Model(EDM)アプリケーションを介してデータにアクセスできるようにします。

データセット

*DataSet* は、データのメモリ内表現です。 これは、データベースから取得される、切断されたキャッシュされたレコードのセットです。 データベースとの接続が確立されると、データアダプターはデータセットを作成し、その中にデータを保存します。 データが取得されてデータセットに保存されると、データベースとの接続が閉じられます。 これは「切断されたアーキテクチャ」と呼ばれます。 データセットは、テーブル、行、列を含む仮想データベースとして機能します。

次の図は、データセットオブジェクトモデルを示しています-

VB.Net Data Classes

DataSetクラスは System.Data 名前空間に存在します。 次の表では、DataSetのすべてのコンポーネントについて説明します-

Sr.No. Components & Description
1

DataTableCollection

これには、データソースから取得したすべてのテーブルが含まれます。

2

DataRelationCollection

データセット内のテーブル間の関係とリンクが含まれます。

3

ExtendedProperties

これには、データを取得するためのSQLステートメント、取得時間などの追加情報が含まれています。

4

DataTable

データセットのDataTableCollectionのテーブルを表します。 DataRowおよびDataColumnオブジェクトで構成されます。 DataTableオブジェクトでは大文字と小文字が区別されます。

5

DataRelation

データセットのDataRelationshipCollectionの関係を表します。 DataColumnオブジェクトを介して2つのDataTableオブジェクトを相互に関連付けるために使用されます。

6

DataRowCollection

DataTableのすべての行が含まれます。

7

DataView

これは、ソート、フィルタリング、検索、編集、およびナビゲーション用のDataTableのカスタマイズされた固定ビューを表します。

8

PrimaryKey

DataTableの行を一意に識別する列を表します。

9

DataRow

DataTableの行を表します。 DataRowオブジェクトとそのプロパティおよびメソッドは、DataTableの値を取得、評価、挿入、削除、および更新するために使用されます。 NewRowメソッドを使用して新しい行を作成し、Addメソッドを使用してテーブルに行を追加します。

10

DataColumnCollection

DataTableのすべての列を表します。

11

DataColumn

DataTableを構成する列の数で構成されます。

データベースへの接続

  • SqlConnection -Microsoft SQL Serverへの接続用に設計されています。
  • OleDbConnection -Microsoft AccessやOracleなどの幅広いデータベースに接続するために設計されています。

例1

testDBという名前のデータベースに、Customersという名前のMicrosoft SQL Serverに保存されたテーブルがあります。 SQL Serverでデータベースとデータベーステーブルを作成するには、「SQL Server」チュートリアルを参照してください。

このデータベースに接続しましょう。 次の手順を実行します-

  • [ツール]→[データベースに接続]を選択します

VB.Netデータベース接続の例

  • [接続の追加]ダイアログボックスでサーバー名とデータベース名を選択します。 + M

VB.Netデータベース接続

  • [接続のテスト]ボタンをクリックして、接続が成功したかどうかを確認します。

接続成功

  • DataGridViewをフォームに追加します。

VB.Net DataGridView

  • [データソースの選択]コンボボックスをクリックします。
  • [プロジェクトデータソースの追加]リンクをクリックします。

プロジェクトデータソースリンクの追加

  • これにより、データソース構成ウィザードが開きます。
  • データソースの種類として[データベース]を選択します

データソース

  • データベースモデルとしてDataSetを選択します。

データベースモデル

  • 既に設定されている接続を選択します。

VB.Netデータベース接続

  • 接続文字列を保存します。

接続文字列の保存

  • データベースオブジェクト(この例ではCustomersテーブル)を選択し、[完了]ボタンをクリックします。

VB.Netデータベース接続

  • [データのプレビュー]リンクを選択して、結果グリッドにデータを表示します-

データプレビュー

Microsoft Visual Studioのツールバーで利用可能な*スタート*ボタンを使用してアプリケーションを実行すると、次のウィンドウが表示されます-

データグリッドビューのVB.netデータ

例2

この例では、コードを使用してDataGridViewコントロールのデータにアクセスします。 次の手順を実行します-

  • DataGridViewコントロールとボタンをフォームに追加します。
  • ボタンコントロールのテキストを「Fill」に変更します。 *以下に示すように、ボタンコントロールをダブルクリックして、ボタンのClickイベントに必要なコードを追加します-
Imports System.Data.SqlClient
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) _
   Handles MyBase.Load
      'TODO: This line of code loads data into the 'TestDBDataSet.CUSTOMERS' table.
      You can move, or remove it, as needed.

      Me.CUSTOMERSTableAdapter.Fill(Me.TestDBDataSet.CUSTOMERS)
      ' Set the caption bar text of the form.
      Me.Text = "finddevguides.com"
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim connection As SqlConnection = New sqlconnection()
      connection.ConnectionString = "Data Source=KABIR-DESKTOP; _
         Initial Catalog=testDB;Integrated Security=True"
      connection.Open()
      Dim adp As SqlDataAdapter = New SqlDataAdapter _
      ("select* from Customers", connection)
      Dim ds As DataSet = New DataSet()
      adp.Fill(ds)
      DataGridView1.DataSource = ds.Tables(0)
   End Sub
End Class
  • 上記のコードが実行され、Microsoft Visual Studioツールバーで使用可能な Start ボタンを使用して実行されると、次のウィンドウが表示されます-

データベース接続

  • [塗りつぶし]ボタンをクリックすると、データグリッドビューコントロールにテーブルが表示されます-

データベース接続

テーブル、列、行の作成

DataTable、DataColumn、DataRowなどのDataSetコンポーネントを使用して、それぞれテーブル、列、行を作成できることを説明しました。

次の例は、概念を示しています-

実施例3

これまで、コンピューターに既に存在するテーブルとデータベースを使用しました。 この例では、テーブルを作成し、列、行、データを追加して、DataGridViewオブジェクトを使用してテーブルを表示します。

次の手順を実行します-

  • DataGridViewコントロールとボタンをフォームに追加します。
  • ボタンコントロールのテキストを「Fill」に変更します。
  • コードエディターで次のコードを追加します。
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' Set the caption bar text of the form.
      Me.Text = "tutorialspont.com"
   End Sub

   Private Function CreateDataSet() As DataSet
      'creating a DataSet object for tables
      Dim dataset As DataSet = New DataSet()
      ' creating the student table
      Dim Students As DataTable = CreateStudentTable()
      dataset.Tables.Add(Students)
      Return dataset
   End Function

   Private Function CreateStudentTable() As DataTable
      Dim Students As DataTable
      Students = New DataTable("Student")
      ' adding columns
      AddNewColumn(Students, "System.Int32", "StudentID")
      AddNewColumn(Students, "System.String", "StudentName")
      AddNewColumn(Students, "System.String", "StudentCity")
      ' adding rows
      AddNewRow(Students, 1, "Zara Ali", "Kolkata")
      AddNewRow(Students, 2, "Shreya Sharma", "Delhi")
      AddNewRow(Students, 3, "Rini Mukherjee", "Hyderabad")
      AddNewRow(Students, 4, "Sunil Dubey", "Bikaner")
      AddNewRow(Students, 5, "Rajat Mishra", "Patna")
      Return Students
   End Function

   Private Sub AddNewColumn(ByRef table As DataTable, _
   ByVal columnType As String, ByVal columnName As String)
      Dim column As DataColumn = _
         table.Columns.Add(columnName, Type.GetType(columnType))
   End Sub

   'adding data into the table
   Private Sub AddNewRow(ByRef table As DataTable, ByRef id As Integer,_
   ByRef name As String, ByRef city As String)
      Dim newrow As DataRow = table.NewRow()
      newrow("StudentID") = id
      newrow("StudentName") = name
      newrow("StudentCity") = city
      table.Rows.Add(newrow)
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim ds As New DataSet
      ds = CreateDataSet()
      DataGridView1.DataSource = ds.Tables("Student")
   End Sub
End Class
  • 上記のコードが実行され、Microsoft Visual Studioツールバーで使用可能な Start ボタンを使用して実行されると、次のウィンドウが表示されます-

  • [塗りつぶし]ボタンをクリックすると、データグリッドビューコントロールにテーブルが表示されます-