尝试使用实体更新类别表

时间:2011-08-26 13:52:34

标签: c# linq entity-framework linq-to-entities

我有一个数据网格视图,当我点击数据gridview行时,我有两个文本框,相应的行值填入文本框......

直到这个工作正常......

我想在点击保存按钮

时更新类别表

我有

的类别表
                              category_id
                              category_name
                              category_description

这是我的代码:

                 private void btnSave_Click(object sender, EventArgs e)
                 {

                      if(dgvCategories.SelectedRows.Count >0)
                      {
                     int updatecategoryid = Convert.ToInt32(dgvCategories.SelectedRows[0].Cells[0].Value);
                     category categoryupdate = new category() { category_Id = updatecategoryid };
                     categoryupdate.category_Name = tbCategoryName.Text;
                     categoryupdate.category_Description = tbCategoryDescription.Text;
                     dbcontext.SaveChanges();
                     }

                }

它不会更新类别表.....

对此有任何帮助.....

2 个答案:

答案 0 :(得分:1)

您的dbcontext无法知道您正在更新任何内容。由于您提到“更新”表格,因此这是更新类别表格的一种方法。

更新

var category = dbcontext.Categories.Where(c => c.category_id.Equals(catId)).Single();
if (category != null)
{
    category.category_name = tbCategoryName.Text;
    category.category_description = tbCategoryDescription.Text;
}
dbcontext.SaveChanges();

现在,如果你想在你的类别表上插入......

插入:

category c = new category();
c.category_name = tbCategoryName.Text;
c.category_description = tbCategoryDescription.Text;
dbcontext.Categories.AddObject(c);
dbcontext.SaveChanges();
return c.category_id; //(optional) if you want the unique id to be returned

答案 1 :(得分:0)

除非您说出来,否则dbcontext无法知道您创建了category个对象。

                 category categoryupdate = new category() { category_Id = updatecategoryid };
                 dbcontext.Attach(categoryupdate);
                 categoryupdate.category_Name = tbCategoryName.Text;
                 categoryupdate.category_Description = tbCategoryDescription.Text;
                 dbcontext.SaveChanges();