0

最初の説明:

私が取り組んでいるゲームの単純なオフラインの「キャラクタージェネレーター」を作成しようとしています。私はこれにVBを使用していますが、まだ初心者です。VS 2012 で WinForms アプリケーションを作成し、さまざまなデータを保持するローカル データベース オブジェクトを作成しました。データベース内には、すべてのデータを保持する「Players」テーブルがあります。BindingNavigator もフォームに追加しましたが、ナビゲーションは PlayersBindingSource にバインドされた List コントロールによって制御されるため、追加ボタンと削除ボタン以外はすべて削除しました。また、BindingNavigator に保存ボタンを追加しました。

「Players」テーブルに 2 つのサンプル エントリを手動で入力しました。フォームが読み込まれると、listBox の「Player Name」フィールドに 2 つのエントリが正しく表示されます。1 つを選択すると、各フィールドを表すすべてのコントロールがそれに応じて変化します。値を変更して保存ボタンを押すと、使用しているコードで動作するようです。

今問題:

追加ボタンを押すと、ListBox に新しいエントリが作成されますが、指定されたデフォルト値は表示されません。このエントリを編集して保存すると、正常に更新されるようです。ただし、エントリのいずれかに他の変更を加えて保存しようとすると、例外がスローされます。

削除ボタンを押すと、期待どおりエントリがリストから消えますが、保存しようとすると例外が発生します。

これまでのところ私のフォームにあるコードは次のとおりです(それほど多くはありません):

Public Class frmMain

    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.PlayersTableAdapter.Fill(Me.DatPlayerDataSet.Players)
    End Sub

    Private Sub SaveToolStripButton_Click(sender As Object, e As EventArgs) Handles SaveToolStripButton.Click
        Me.Validate()
        Me.PlayersBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DatPlayerDataSet)
    End Sub
End Class

また、「Players」テーブルに含まれるデータを見ると、2 つのサンプル エントリは変更されず、追加のエントリも追加されていないため、編集が実際にテーブルにコミットされたことはないと思います。

誰かがこれを手伝ってくれたり、単に私を助けるいくつかのチュートリアルへのリンクを提供してくれたりしたら、私は非常に感謝しています. このサイトと microsofts msdn ライブラリを閲覧し、データ バインディングとナビゲーションに関する情報を検索しましたが、役立つ情報が見つかりませんでした。

4

2 に答える 2

0

行を挿入した後、「btnNewPlayer_Click」サブでもう一度考えて、リストをクリアしてリスト項目を再ロードするか、リスト項目を埋めるために使用している関数を呼び出します。

于 2013-10-04T06:48:40.180 に答える
-1

ページを更新してみてください。リストが更新される可能性があります。

于 2013-10-04T05:24:26.303 に答える