#c# #windows #forms
#c# #Windows #формы
Вопрос:
Я создаю серверную часть для одной из веб-страниц. Серверная часть представляет собой форму Windows на C #.
У меня ожидается оплата бизнес-объекта:
public class PaymentExpected
{
public int ID { get; set; }
public int JoiningID { get; set; }
public int AccountID { get; set; }
.....
public List<PaymentExpected> Load_All()
{
....
}
И чтобы заполнить мой DataGridView, я просто делаю:
DG_View.DataSource = paymentExpected.Load_All();
теперь я хочу, чтобы обновления сохранялись после нажатия кнопки «Обновить», но я не хочу использовать адаптер SQL, поскольку я использую бизнес-объекты.
Итак, мне нужен какой-то способ получить изменения и вызвать обновление. (Который я обычно обновляю следующим образом:)
paymentExpected.ID = 1;
paymentExpected.JoiningID = 1;
paymentExpected.AccountID = 1;
paymentExpected.Save();
Но я не уверен, как это сделать с помощью datagridview?
Ответ №1:
Почему вы не можете просто сохранить ссылку на «Ожидаемые платежи.Источник данных Load_All()»в исходном коде и ожидаемая оплата вызова.Сохранить () из события нажатия кнопки?
Комментарии:
1. Привет, я не совсем уверен, что ты имеешь в виду? Как мне передать обновленные значения объекту для сохранения()?
2. Вы привязываете данные, поэтому изменения уже должны быть внесены в связанный объект. Из вашего примера я предположил, что вы хотели вызвать Save() для элементов, привязанных к datagridview.
3. Отлично! Я не понимал, что это было привязано, и любые действия, которые я выполнял, повлияли бы на список<BusinessObject> . Но теперь я вижу, что это так.
4. Однако, следующий вопрос, есть ли способ, которым я могу получить точный объект, который был изменен, вместо перебора всех объектов и выполнения .save()?
5. Я думаю, вы можете ответить на этот вопрос лучше меня, это действительно зависит от вашей реализации сохранения. Если у вашего BusinessObject есть своего рода свойство IsDirty, вы можете использовать это. Единственный способ, которым, я думаю, вы можете сделать это автоматически, — это использовать некоторую логику AOP / interceptor и помечать ваши объекты как грязные, если затронуто свойство. Используйте ORM или Castle ActiveRecords или что-то еще, что сделает эту работу за вас. Вам следует прочитать о незнании сохранения.