Member 13921023 Ответов: 1

Как создать уникальный серийный номер в C# с номером типа данных с помощью DB MS-access


Здравствуйте, я новичок в c#. Мне нужна помощь для создания уникального номера счета-фактуры.
Я хочу отобразить номер типа "SSL/06/XI/2018", но значение типа в БД все еще находится в номере.

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

void NewInvoice()
        {
            try
            {
                OleDbDataAdapter da = new OleDbDataAdapter("Select [Invoice] from [Purchase] order by [Invoice] desc", conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                //Row value +1 for increment
                if (ds.Tables[0].Rows.Count > 0)
                {
                    Invoice_tx.Text = (int.Parse(ds.Tables[0].Rows[0][0].ToString()) + 1).ToString();
                }
                else
                { Invoice_tx.Text = "1"; }
            }
            catch (Exception x)
            {
                MetroFramework.MetroMessageBox.Show(this, "Error" + x, "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }



Я стараюсь для отображения просто числа(например, "1","2") это работает. Когда я пытаюсь создать что-то вроде "SSL/06/XI/2019", все равно возникает ошибка. Пожалуйста, помогите мне

1 Ответов

Рейтинг:
6

lmoelleb

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

2) сообщения об ошибках пытаются сказать вам, что не так. Прочтите их и найдите время, чтобы понять. Google текст ошибки часто будет давать подсказки. И если вы все еще не можете узнать, по крайней мере, включите сообщение об ошибке, когда вы просите о помощи.

3) Чего вы ожидаете

int.Parse("SSL/06/XI/2019")
вернуться? Сначала вам нужно прочитать строку, затем разделить ее на части, затем увеличить нужную часть, а затем снова собрать строку. Посмотрите на метод Split() для строк. Есть и другие (возможно, лучшие) способы сделать это, но Split() очень прост концептуально.

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

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


Member 13921023

спасибо, сэр, это мне очень помогло