Entity Framework を使用した非常に単純な Windows フォーム プロジェクトがあります。
「フォーム」の「データソース」タブからテーブルをドラッグするだけで、「DataGridView」と「BindingSource」が生成されます。
データが正常にバインドされ、プロジェクトを実行すると、「DataGridView」にデータが正しく入力されていることがわかり、「DataGridView」からセルの値を更新できます。
問題は、「DataGridView」に行を挿入できないことです。
問題を解決するのに役立つことを願って私が書いたいくつかのコードを次に示します。
Teachers_DBEntities context = new Teachers_DBEntities();
private void SaveItem_Click(object sender, EventArgs e)
{
context.SaveChanges();
MessageBox.Show("saved successfully");
}
private void Form1_Load(object sender, EventArgs e)
{
teachers_tableBindingSource.DataSource = context.teachers_table.ToList();
}
コメントの更新
「BindingSource」をテストしたところ、「DataGridVeiw」に新しいレコードが挿入されているかどうかは正常に認識されていましたが、呼び出したときにデータベースに変更が適用されませんでしたcontext.savechanges();
context.savechanges()
セルを更新するとうまくいきますが、「DataGridView」に新しいレコードを挿入しようとするとうまくいきません。
私のedmxファイルでは、すべての列を正しくマップし、主キーStoreGeneretedPattern
のプロパティがに設定されIdentity
、そのEntity Key
プロパティがに設定されていtrue
ます。SQL auto-increment
Server データベース ファイルのプロパティは に設定されていtrue
ます。
どんな助けでも大歓迎です。