0

VB 2010 プロジェクトで使用しているデータベースがあります。私がしたことは、フォームにドラッグしたデータベース フィールドのテキスト ボックスを削除し、それをコンボ ボックスに置き換えたことです。フィールド名はorderstatus.

問題は次のとおりです。フォームからテキスト ボックス フィールドを削除したため、コンボボックスの値をアクティブ レコードのフィールドにバインドできないようです。つまり、orderstatusテキストボックスはもう存在しません。ユーザーがコンボボックスからステータスを選択し、その値を orderstatus に保存して、データベースの現在のレコードに保存できるようにしたいと考えています。

私はこのようなことをしたい:

Private Sub Button16_Click_1(sender As System.Object, e As System.EventArgs) Handles Button16.Click
  orderstatus = ComboBox13.SelectedValue
  Me.OrdersDataSet.orders(0).orderstatus = orderstatus
  Me.Validate()
  Me.OrdersBindingSource.EndEdit()
  Me.TableAdapterManager12.UpdateAll(Me.OrdersDataSet)
End Sub

しかし、行0がないことを言って、フィールドに値を割り当てようとする2行目が好きではありません。コンボボックスの選択した値を、作成中のレコードのorderstatusフィールドに入れるだけです(または更新されます)。

私も使ってみました:

Me.OrdersDataSet.orders.orderstatusColumn = orderstatus

列のプロパティが読み取り専用であるというメッセージが表示されます。データセットを更新するように構成したため、それがどのように可能かはわかりません。

それが違いを生む場合、私はおそらくデータグリッドビューではなく詳細ビューを使用していることに言及する必要があります。datagridview を使用してこれを行う方法についての話を見たことがありますが、それが私の場合に機能するかどうかはわかりません。

私は何を間違っていますか?現在の行で必要な列だけを更新するには、何を使用すればよいですか?

4

1 に答える 1

0

うーん、問題のフィールドのデータバインディング プロパティを設定してバインディング ソースに直接保存し、バインドする選択項目を選択するのを忘れていたことがわかりました。それはすぐそこにあり、私は気づきませんでした。生きて学びます。:)

于 2013-02-08T19:22:10.470 に答える