2017-05-17 6 views
0

私はDataGridViewの単純フォームを持っていて、DataSetDataTableをデータソースとして使用しています。 DataGridViewに追加、変更、削除されたデータをデータベースに保存する必要があります。しかし、キャッチがあります。私はすべてのデータベース情報をハードコードしているわけではありません。代わりに、ユーザーは実行時にそれを入力します。私はSqlCommandBuilderを使用しようとしていましたが、データベースが動作するためには一意の識別子が必要です。周りに他の方法はありますか?または、固有の識別子を持つデータベースのみを使用するようにユーザーを制限する必要がありますか?それでも、挿入/削除/更新用のカスタムコマンドを書かなければならないのですか?それとも標準的な方法が使えますか?DataGridviewで変更されたデータをデータベースに保存する方法は?

+0

__「DataGridView」、「GridView」または「DataGrid」を呼び出すことはできません。これらは異なるコントロールであるため、間違って混乱します。常に__right__の名前で物事を呼び出す! - _ _それはデータベースが一意の識別子を持っていなければならないように見えます。_もちろんです。 DBMSは一意の識別子を__always__呼び出します。どのように他のことができますか?どのように他の行を__identify__ことができますか?なしのテーブルはひどく悪いデザインです。 – TaW

+0

@TaWはタイトルを編集しました。 – 7Y3RPXK3ETDCNRDD

+0

DBMSは、完全なシステム情報を持つテーブル( 'systables')を提供する必要があります。タイプ、キー、fks、ビューなどから必要なものを見つけることができます。 – TaW

答えて

0

私はあなたのアプリケーションをどこに行っているのかわからないので、私はいくつかの詳細を下にいくつかの基本があるかもしれませんが、いくつかのコメントを残してお気軽に私は答えを再構築しようとしますオフベース。

まず、任意のサイズのアプリケーションを構築する場合は、winformsではなくWPFを使用することを検討してください。はるかに多くの電力と柔軟性を提供し、winformsよりも推奨されます。 WPFを使用している場合は、MVVM patternを調べてデータを追跡する必要があります。

ユーザーが実行時にデータベースを選択する限り。接続できる有限のデータベースがありますか?その場合、接続の詳細をバックグラウンドで設定し、ユーザーが使用したい接続をドロップダウンから選択させることができます。

データベースに読み書きする場合は、Entity Frameworkの使用をお勧めします。

関連する問題