0

エラー:

変更された行を含む DataRow コレクションを渡す場合、更新には有効な UpdateCommand が必要です。

これは、オンラインで見つけたよくある質問です。答えがあるものもあれば、ないものもあります。これが私の問題です。私がしたことは、マイクロソフト プレスの本にあるチュートリアルに従って、 Windows 認証を介して SQL Server データベースに接続し、スクリーン ショットに示すように、テーブルから 2 つのフィールドをテキスト ボックスとしてフォームにプルすることだけでした。ボタンがありadd, delete, updateます(自動作成)。

ここに画像の説明を入力

次に、次のコードを生成し、UPDATE行にエラーを示します。私がやろうとしたこと、 update ID = 2 to ID = 3. ADO.Net側のコンポーネント(接続/表示など)を試していたので、テーブルに主キーはありませんでした。

Private Sub Testdbtable1BindingNavigatorSaveItem_Click
                (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
                                Testdbtable1BindingNavigatorSaveItem.Click
    Me.Validate()
    Me.Testdbtable1BindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.TestcmdDBDataSet) //-------<< error
End Sub

では、フォームにそのボタンSAVEまたはボタンを配置する本当の理由は何ですか? UPDATEレコードの変更を保存できないのはなぜですか?

4

1 に答える 1

0

テーブルに主キーがない場合、tableadapter は更新ロジックを生成できません。PK を追加してから、データセットのデザイナーに移動し、クエリを再生成します。今回は INSERT および UPDATE クエリが生成されていることを確認します。

于 2013-03-04T16:37:34.860 に答える