質問: XAMPPを使ってODBC環境を構築し、VisualStudio2013CommunityでC#を使って直接DBをいじれるようなコードを作成中です。 その中で、mySQLであらかじめデータテーブルを作っておき、ODBC.localhostをVisualStudioからデータ接続したのでDataSetデザイナー上にあらかじめ作っておいたデータテーブルは無事に表示されました。 ここまでは問題なかったのですが、本来自動で「TableAdapter」に生成されるはずの「Update」メソットが定義に含まれていないというコンパイルエラーが出ていて問題が発覚しました。 現状これに関連する問題として ・TableAdapterのプロパティ「GenerateDBDirectMethods」をtrueにできない。trueにしようとしたら「プロパティの値が無効です。データベースオブジェクトの方には、GenerateDBDirectをTrueに設定できません。」というエラーが出ます。 ・TableAdapter構成ウィザードの「詳細オプション」の「INSERT,UPDATE,およびDELETEステートメントの生成」「おプティミスティック同時実行制御」にチェックを入れてOKを押しても、次開いた時にはチェックが外れている。 ・クエリビルダーをおしたら一番上のカラム一覧が表示されないが、下の表の部分にはカラムの一覧が表示されている。 という3つの現象を正常に動作している上司のVisualStudio2013Communityとの違いを洗い出した結果発見しました。 ODBC環境の設定がおかしいとは思えず、恐らくVisualStudioの設定でどこかがおかしいのかな...。と思っています。 解決方法ご存じの方教えて頂ければ幸いです。 宜しくお願い致します。
回答: 対象テーブルに主キーが設定されていないの可能性が考えられます。 更新するためには行を区別できるスキーマ情報を持つ必要があります。