fellanmorgh Ответов: 1

Автоматическое увеличение числа (используется несколько пользовательских элементов управления) winforms


Всем привет,

У меня есть форма, которая загружает два пользовательских элемента управления. В основном пользователь вводит информацию в 1-м пользовательском элементе управления, а затем переносит его во 2-й пользовательский элемент управления, где они могут нажать кнопку Применить, которая затем сохраняет информацию в текстовый файл.

Однако у меня есть проблема с идеей о том, как создать инкрементированный идентификатор продукта, который не будет повторяться. Я имею в виду, что всякий раз, когда во 2-й форме все сохраняется в текстовый файл, пользователь может затем выйти из приложения или начать все сначала. Но когда вы начнете все сначала, это, очевидно, приведет их к 1-му пользовательскому элементу управления, чтобы ввести действительные данные, но, конечно, он даст всем типам данных свои значения по умолчанию.

Другими словами, идентификатор продукта будет начинаться со значения по умолчанию 0.

Я хотел бы убедиться, что идентификатор продукта всегда будет оставаться неизменным, когда пользователь начинает все сначала, чтобы его можно было увеличить до нового уникального значения.

Примечание: кнопка Начать все сначала расположена на форме, а не в пользовательском элементе управления.

У кого-нибудь есть идея, как я мог бы этого достичь?

Заранее спасибо.

Что я уже пробовал:

Например,
Идентификатор продукта = 1

пользователь нажимает кнопку, чтобы начать все сначала, и идентификатор продукта должен оставаться прежним (1), чтобы затем его можно было увеличить до 2.

Это мой класс продукта:

public Product()
{ }

public string ProductId //The product ID I want to be incremented.
{
    get { return productId ; }
    set { productId = value; }
}

FranzBe

Вам нужно сохранить свой ProductId вне вашего приложения и загрузить его при запуске. В случае, если вы подключены к базе данных, вы можете использовать для этого последовательность. Альтернативами могут быть: какой-то ключ в реестре или настройка программы.

1 Ответов

Рейтинг:
0

Oshtri Deka

Если вы хотите сохранить свои данные после завершения программы, вам нужно какое-то хранилище данных (база данных или документ).
Но если вы не заботитесь о хранении данных, вы можете достичь того, что просите, с помощью класса DataTable.

var myTable = new DataTable("Product");

var productidColumn = new DataColumn("ProductId", typeof(int));
productidColumn.AutoIncrement = true;
// primary key or just unique? You decide.

myTable.Columns.Add(productidColumn);


Тогда вы можете манипулировать данными, как вам заблагорассудится.
Кроме того, вы можете пойти еще дальше и создать типизированный набор данных или код первого репозитория EF.
Есть много готовых решений для вашего требования, последнее, что я хотел бы сделать, это сделать собственный пользовательский механизм автоматического приращения.
Это возможно и просто, но это также как изобретать велосипед (и подвержено ошибкам в случае новичков!).


fellanmorgh

Интересное решение, я его проверю.