1

アクセスデータベースにデータを挿入するプログラムがあり、ユーザーは新しく追加されたアイテムをデータグリッドビューで表示できます。データベースに新しいアイテムを追加した後、プログラムの実行中はデータグリッドビューに表示されません。行った変更を確認するために、プログラムを停止して再度実行する必要があります。

datagridviewをロードする方法は次のとおりです。

Public Class frmSupplies

Private Sub frmSupplies_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'SuppliesDataSet.product_info' table. You can move, or remove it, as needed.
    Me.Product_infoTableAdapter.Fill(Me.SuppliesDataSet.product_info)
End Sub

プログラムの実行中に新しく追加されたアイテムを表示するにはどうすればよいですか?

4

4 に答える 4

1

datagridviewの「refresh」関数を呼び出すモジュールを作成しました。プロジェクトに新しいモジュールを追加し、次のコードを追加しました。

Imports System.Data.OleDb
Module Module1
Dim con As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source= database path")
Sub REFRESHDGV()
    Dim sql As String
    sql = "SELECT * FROM [product info]"
    Dim adapter As New OleDbDataAdapter(sql, con)
    Dim dt As New DataTable("product info")
    adapter.Fill(dt)
    Form1.dgv1.DataSource = dt
End Sub
End Module

これが他の人に役立つことを願っています!

于 2012-12-02T00:31:04.707 に答える
0

AccessテーブルをWindowsフォームのグリッドにバインドし、そのアプリケーションの外部でデータを変更する場合、フォームまたはグリッドは、1)から何らかの通知を受信しない限り、データが変更されたことを知る方法がありません。アクセス、または2)アプリケーションは、変更が加えられたかどうかを確認するためにデータソースにクエリを実行し続けます。

オプション1は、MSAccessには適用されません。

唯一のオプションは、フォームにタイマーを設定して(一定の間隔で)変更を定期的にチェックし、テーブルをリロードして、変更が見つかった場合はグリッドを更新することです。

于 2012-11-25T00:11:07.233 に答える
0

私はアクセスに精通していません(私はオラクルを使用しています)。Oracleデータベースは、データベースに変更があった場合に通知できるため、datagridviewを更新できます。あなたの場合、ボタン(datagridViewを更新するため)またはタイマーを使用して、x回ごとに更新することができます(時間を知っています)。

'I imagine that you have a bindingSource
 bindingSource1.DataSource = Product_infoTableAdapter.GetData()
 bindingSource1.ResetBindings(false)

たぶん、 DataGridViewDataBindingを調べたいと思うでしょう

于 2012-11-23T12:57:22.690 に答える
0

begineditをラップしてみてください... endedit

 gridview.BeginEdit();
 ----
 gridview.EndEdit();
于 2012-11-23T12:39:02.993 に答える