Boopalslm Ответов: 3

Как генерировать номер счета каждый день начинается с 1


я создаю приложение windows с помощью приложения windows c# 2010, в моем приложении я использую приведенный ниже код для генерации номера счета, но здесь я хочу, чтобы мой номер счета каждый день начинался с 1. Дайте мне какие-нибудь идеи.

public void AutoNumber()
{

SqlConnection con = new SqlConnection(db.Connectionstring());
con.Open();

SqlCommand cmd = new SqlCommand("SELECT max(billno) +1 FROM billing", con);

SqlDataReader dr = cmd.ExecuteReader();

if (dr.HasRows)
{

while (dr.Read())
{
lblbillno.Text = dr[0].ToString();

if (lblbillno.Text == "")
{
lblbillno.Text = "1";
}


}
}

else
{
lblbillno.Text = "1";

}
con.Close();
}


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

How to generate bill number every day starts from 1

Afzaal Ahmad Zeeshan

Не берите в голову.

3 Ответов

Рейтинг:
1

CPallini

Вы должны сохранить дату последнего номера счета. Затем, если такая дата не совпадает с текущей, перезагрузите компьютер с помощью billno=1.


OriginalGriff

Или вы можете использовать PARTITION BY, чтобы дать автоматический подсчет по дням при запросе базы данных...

Рейтинг:
1

OriginalGriff

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

Используйте столбец идентификаторов в своей БД, и пусть SQL сортирует уникальные числа. Затем вы можете использовать подзапрос для возврата инкрементного значения в день с помощью PARTITION BY:

SELECT ROW_NUMBER() OVER (PARTITION BY EnterDate  ORDER BY RowIDValueColumn ASC) AS DailyNumber, * 
FROM MyTable 
WHERE EnterDate >= '2016-02-02' 
ORDER BY RowIDValueColumn ASC


Рейтинг:
0

Peter Leow

Как сказал OriginalGriff, вы этого не делаете. Пусть этим управляет SQL-сервер.
С другой стороны, если ваш номер счета имеет определенный формат, помимо текущего номера, вы можете взглянуть на это Запросите у своей базы данных этот уникальный идентификатор[^].