2011-08-26 2 views
0

у меня есть GridView данных и у меня есть два текстовых поля, когда я нажимаю на 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(); 
        } 

       } 

не обновляет таблицу категории .....

бы любой помощи на этом .....

ответ

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 
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(); 
+0

Ошибка: Объект с нулевым значением EntityKey не может быть привязанный к контексту объекта. InvalidoperationException не было заблокировано. –

+0

@ user852714: Какую версию Entity Framework вы используете? – StriplingWarrior

+0

E.F 1 version ... –

Смежные вопросы