none
データベース開発入門で不明 RRS feed

  • 質問

  • VisualStudio2008, SQLServer2005の環境です。
    書籍の「VisualBasic2005データベース開発入門」を見ながら進めている入門者です。
    SQLServer2000はすこし触っていました。
    この入門書で「データセットにバインドしたカード型フォームを作成する」を行い実行しました。
    テーブルは手元にあるものを使用してフォームもそれから作成しました。
    動作は大体動きます。レコードの追加、保存は出来ます。がレコードの修正、削除をして、
    保存ボタンを押すと下記の部分で停止し、保存してくれません。

    Me.Validate()
    Me.商品マスタBindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.ButsuryuDataSet)   ←ここ

     この最後の行で止まり「invalidOperationExceptionはハンドルされませんでした」という題のエラーメッセージが出て保存してくれません。「更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です」という内容も書かれてます。
    どこに原因があるのか分からず不安です。気にせずに先に進んでいっても良かったらいいのですが。

    2008年8月5日 9:26

回答

  • TableAdapterを作成する時に、テーブルに主キーが定義されていなかったため、更新、削除のSQL文が作成されなかったのではないかと思います。テーブルに主キーを定義し、TableAdapterの構成を再度行ってみて下さい。

    2008年8月5日 9:33
    モデレータ

すべての返信

  • TableAdapterを作成する時に、テーブルに主キーが定義されていなかったため、更新、削除のSQL文が作成されなかったのではないかと思います。テーブルに主キーを定義し、TableAdapterの構成を再度行ってみて下さい。

    2008年8月5日 9:33
    モデレータ
  • trapemiya様、おはようございます。自作のテーブルに主キーを設定していませんでした。

    SQLServerのテーブルに主キーを設定しTableAdapterからすべてやり直しましたら、問題なくなりました。

    ありがとうございます。

    2008年8月5日 23:08