Amar chand123 Ответов: 2

Проблема в автономер в текстовом поле C#


я пытаюсь автономер для моей базы данных в C#, но у меня есть проблема в моем коде автономера,

Проблема в счетчик

Срно
00001
00002
00003
00004

если я удалю набор данных SrNo 00001 то следующий автономер покажет 00004 в текстовом поле но мне нужно следующее число показать в текстовом поле 00005

Может ли кто-нибудь помочь мне и решить мою проблему

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

мой код
private void Autonumber()
        {
            String connstring = ConfigurationManager.ConnectionStrings["Data"].ConnectionString;
            OleDbConnection con = new OleDbConnection(connstring);
            string Query = "select count(*) from customer";
            OleDbCommand cd = new OleDbCommand(Query, con);
            try
            {
                con.Open();
                int count = Convert.ToInt16(cd.ExecuteScalar()) + 1;
                txtNumber.Text = count.ToString("00000");
                txtNumber.Enabled = false;
                
            }
            
            finally
            {
                con.Close();
            }
        }

Amar chand123

Теперь я пытаюсь удалить "Count" и использовать "max" в заявлении и работает, нам это правильно или нет

Richard MacCutchan

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

Maciej Los

Мой виртуальный 5!

Richard MacCutchan

Спасибо, но это стоит только 5, если я могу вспомнить точный синтаксис.

Maciej Los

Кого волнует точный синтаксис? Гораздо важнее предложить идею!

Richard MacCutchan

Если бы только люди приняли к сведению наши предложения.

Maciej Los

;)

BillWoodruff

- Кого волнует точный синтаксис? Гораздо важнее предложить идею!" Мне не все равно !

Maciej Los

Ладно, ладно...

2 Ответов

Рейтинг:
13

RickZeeland

Вы можете использовать:

SELECT MAX(SrNo) FROM customer

Видеть: Функции SQL MIN() и MAX() [^]


Maciej Los

5ed!

Рейтинг:
12

Maciej Los

В однопользовательской среде пользовательская функция автономера была бы в порядке. Но в многопользовательской среде он потерпит неудачу.

Вы должны реализовать то, что Ричард Маккатчан упомянуто в комментарии к вопросу. Видеть:
SQL SERVER 2012 – Как создать порядковый номер varchar – использование объекта последовательности | портал SQL Server[^]

В случае, если база данных помещена в файл Excel или Access, у вас возникнут проблемы. Там нет такой функциональности. Вы должны написать пользовательскую функцию. Видеть RickZeeland решение для деталей. Вот как этого добиться:
NextSrNo = MAX(SrNo) +1