Есть модель заказы. Есть форма на которой я работаю с этой моделью. Подтягиваю её в dataGridView. Нажимаю на определённый заказ и нажимаю кнопку утвердить заказ. Перехожу на другую форму где нажимаю Ок. И в базу вносятся изменения. И всё работало шикарно. Но когда я добавил в событие
dataGridView1_CellClick
подтягивание модели. Тогда почему то на форме уже не подтягиваются изменения которые я внёс в базу когда утверждал заказ. Но если я снова перехожу на форму где заказ утверждается и нажимается кнопка Ок, там моделька подтягивается со всеми изменениями, то есть реальная. Какой то полтергейст. Не могу понять в чём дело. Вот код формы на которой грида:
public partial class Form10 : Form
{
Context db;
DataTable dt;
public void FillGrid(List<Order> orders)
{
dt = new DataTable();
dt.Columns.Add("Id", typeof(Int32));
dt.Columns.Add("Дата заказа", typeof(DateTime));
dt.Columns.Add("Марка автомобиля", typeof(String));
dt.Columns.Add("Модель автомобиля", typeof(String));
dt.Columns.Add("Цена", typeof(Int32));
dt.Columns.Add("Фамилия клиента", typeof(String));
dt.Columns.Add("Имя клиента", typeof(String));
dt.Columns.Add("Отчество клиента", typeof(String));
dt.Columns.Add("Фамилия продавца", typeof(String));
dt.Columns.Add("Имя продавца", typeof(String));
dt.Columns.Add("Отчество продавца", typeof(String));
dt.Columns.Add("Статус заказа", typeof(String));
dt.Clear();
foreach(Order ord in orders)
{
DataRow row = dt.NewRow();
row["Id"] = ord.Id;
row["Дата заказа"] = ord.OrderDate;
row["Марка автомобиля"] = ord.Cars.Mark.MarkName;
row["Модель автомобиля"] = ord.Cars.CarModel.ModelName;
row["Цена"] = ord.Cars.Price;
row["Фамилия клиента"] = ord.Clients.CSurname;
row["Имя клиента"] = ord.Clients.CName;
row["Отчество клиента"] = ord.Clients.CPatronymic;
row["Фамилия продавца"] = ord.Sellers != null ? ord.Sellers.SSurname : null;
row["Имя продавца"] = ord.Sellers != null ? ord.Sellers.SName : null;
row["Отчество продавца"] = ord.Sellers != null ? ord.Sellers.SPatronymic : null;
row["Статус заказа"] = ord.Status;
dt.Rows.Add(row);
}
dataGridView1.DataSource = dt;
dataGridView1.Columns[0].Visible = false;
}
public int OrderId = 0;
public Form10(List<Order> orders)
{
InitializeComponent();
db = new Context();
FillGrid(orders);
button1.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
Form11 f11 = new Form11(OrderId);
this.Hide();
if (f11.ShowDialog() == DialogResult.OK)
MessageBox.Show("Заказ утверждён");
button1.Enabled = false;
this.Show();
FillGrid(db.Order.ToList());
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int index = dataGridView1.SelectedRows[0].Index;
bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out OrderId);
if (converted == false)
return;
Order ord = db.Order.FirstOrDefault(o => o.Id == OrderId);
if(ord.Status != "Заказ утверждён")
button1.Enabled = true;
}
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Order order = db.Order.FirstOrDefault(o => o.Id == OrderId);
Form6 f6 = new Form6(order.CarsId);
this.Hide();
f6.ShowDialog();
button1.Enabled = false;
this.Show();
}
}
Вот код формы на которой кнопка утверждения и внесения в базу изменений:
public partial class Form11 : Form
{
Context db;
public Form11(int orderId)
{
InitializeComponent();
db = new Context();
OrderId = orderId;
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(Int32));
dt.Columns.Add("Value", typeof(String));
foreach (Sellers s in db.Sellers.ToList())
{
DataRow row = dt.NewRow();
row["Id"] = s.Id;
row["Value"] = s.SSurname + " " + s.SName + " " + s.SPatronymic;
dt.Rows.Add(row);
}
comboBox1.DataSource = dt;
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "Value";
}
public int OrderId = 0;
private void button1_Click(object sender, EventArgs e)
{
int sellerId = 0;
int.TryParse(comboBox1.SelectedValue.ToString(), out sellerId);
Order order = db.Order.FirstOrDefault(o => o.Id == OrderId);
Sellers seller = db.Sellers.FirstOrDefault(s => s.Id == sellerId);
order.Sellers = seller;
order.Status = "Заказ утверждён";
db.Entry(order).State = EntityState.Modified;
db.SaveChanges();
}
}
И получается что вот без этого куска куда:
Order ord = db.Order.FirstOrDefault(o => o.Id == OrderId);
if(ord.Status != "Заказ утверждён")
На 10 форме в событии
dataGridView1_CellClick
всё работает как должно. Подскажите пожалуйста, в чём может быть проблема? Не как не могу понять.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сейчас я выполняю логирование в debug строкой LogManagerGetLog = type => new DebugLog(type); в файле App
Есть ListBox и TextBox, первый подвязан под ObservableCollection<Adress>, где Adress -
Например следующий код должен возвращать строку "Г":
На сайте выводится реклама adsense, но на маленьких экранах от 320px часть рекламы скрытаПодскажите, как сделать адаптив для маленьких экранов?