Получить текущий ряд от Гридвью - PullRequest
0 голосов
/ 06 мая 2019

Я новичок в программировании и пытаюсь загрузить изображение и сохранить его в папке с текущим идентификатором продукта.Однако, когда я обновляю изображение, создается новая папка.Как я могу проверить выбранную строку Griedview и проверить, не является ли id нулевым, затем заменить изображение, а если загрузить null?
Я знаю, что идея получения max (id) и установки имени папки не является хорошей практикой, ноЯ хотел, чтобы изображения разделялись идентификатором. Здесь идет код.

        private void upload_Click_1(object sender, EventArgs e)
        {
            OpenFileDialog opFile = new OpenFileDialog();
            opFile.Title = "Select image for this product";
            opFile.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";
            if (opFile.ShowDialog() == DialogResult.OK)
            {
            try
            {
                string iName = opFile.FileName;
                var dir = @"images/" + GetCurrentId();
                var path = Path.Combine(dir, Path.GetFileName(iName));

                if (!Directory.Exists(dir) &&(produto)this.tbprodutoBindingSource.Current == null))
                {
                    Directory.CreateDirectory(dir);
                }

                File.Copy(iName, path);
            }
               catch (Exception ex)
            {
                MessageBox.Show("Unable to open file " + ex.Message);
            }
        }
        else
        {
            opFile.Dispose();
        }
            }

        private int GetCurrentId()
        {
            var result = dataContextFactory.DataContext.produtos.Max(x => x.id_produto);
            int maxId = Convert.ToInt32(result);
            if (maxId == 0) maxId = 1;
            else
                maxId++;

            return maxId;

        }
...