Возникла проблема с обновлением таблицы в Linq до сущностей с оператором update, но без обновления таблицы - PullRequest
0 голосов
/ 22 августа 2011

У меня есть форма с кнопками добавления, редактирования и сохранения. Форма также имеет представление данных.

Я сделал это, чтобы обновить существующие сущности продукта и добавить новые сущности продукта, а затем отобразить измененные данные в представлении данных.

Когда я нажимаю кнопку редактирования, отображается кнопка сохранения и выполняются операторы, которые я написал в кнопке сохранения.

Новые объекты добавляются просто отлично.

Моя проблема в том, что когда я нажимаю на кнопку редактирования, новая строка добавляется в таблицу данных вместо обновления той же строки.

Есть ли способ проверить условие обновления доступного продукта в таблице или добавления нового продукта перед добавлением в таблицу в платформе сущностей?

    private void btnSave_Click(object sender, EventArgs e)
    {

        pictureBox1.Enabled = true;
        pictureBox1.Visible = true;
        Image image = pictureBox1.Image;
        byte[] bit = null;

        bit = imageToByteArray(image);
        product1 pd = new product1();

        string category = tbCategoryName.Text;
        string categorydesc = tbCategoryDescription.Text;

        var c = new category { category_Name = category, category_Description = categorydesc };

        pd.product_Name = tbProductName.Text;
        decimal price = Convert.ToDecimal(tbProductPrice.Text);
        pd.product_Price = price;
        pd.product_Description = tbProductdescription.Text;           
        pd.product_Image = bit;

        pd.category = c;


        tsgentity.SaveChanges();
        EquipmentFinder equipment = new EquipmentFinder();            
        equipment.productgridview.Refresh();           
        this.Close();
        equipment.ShowDialog(this);           

   }

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Это всего лишь пример. Что вам нужно сделать, это вытащить текущий объект из коллекции, которую вы редактируете / сохраняете, используя linq, затем внести изменения в извлеченный объект и затем обновить, т.е.

public bool UpdateCustomer(Customer customer){   
    Customer cust = entities.Customers.FirstOrDefault(c => c.ID == customer.ID);  
    cust.Forname = customer.Forename;   
    cust.Surname = customer.Surname   
    entities.SaveChanges(); 
}
0 голосов
/ 22 августа 2011

Вы проверили обработчики событий для этих кнопок?Они подключены в правильные кнопки?Похоже, ваша кнопка редактирования запускает обработчик событий для новых продуктов, и кажется, что кнопка добавления запускает обработчик событий для редактирования продукта.Я бы определенно проверил это в первую очередь вместо того, чтобы искать обходной путь или взлом, чтобы это терпеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...