Naqash Younis Ответов: 3

Как мы можем генерировать автоматическое приращение в VB, net


как мы можем генерировать автоматическое увеличение, когда я нажимаю на кнопку, она будет проверять из базы данных и считать, чем она плюс 1 в asp .net с помощью Vb.net как и в этом формате
00001
00002
00003
С помощью этого кода который я упоминаю он может автоматически генерировать и добавлять 1 плюс но формат не подходит для меня его генерировать в этом формате
1
2
3
Но я хочу в таком формате
00001
00002
00003

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

Private Sub AutoNumberNo()
       Dim myReader As SqlDataReader
       cn = New SqlConnection(ConfigurationManager.ConnectionStrings("connstring").ConnectionString)
       cn.Open()
       Dim temp As String
       Try
           Dim sql As String = "SELECT MAX(ISNULL(ProdBarCode,0)) 'ProdBarCode' FROM CreateProducts "
           Dim comm As SqlCommand = New SqlCommand(sql, cn)
           myReader = comm.ExecuteReader
           If myReader.HasRows Then
               While myReader.Read()
                   Dim _Count As Integer
                   If (IsDBNull(myReader.Item("ProdBarCode"))) Then
                       _Count = 1
                   Else
                       _Count = myReader.Item("ProdBarCode")
                   End If
                   temp = _Count + 1
                   Me.TextBox4.Text = String.Concat(temp)

               End While
           End If
           myReader.Close()
       Catch ex As Exception
       End Try
       cn.Close()

   End Sub

3 Ответов

Рейтинг:
6

Sandeep Mewara

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

По умолчанию операции форматирования отображают только ненулевые целочисленные цифры. Вы можете заполнить целое число или число с плавающей запятой ведущими нулями, чтобы получить результирующую строку с заданным количеством целых цифр, используя пользовательский спецификатор числового формата "0", как показано в следующем примере


Один из способов сделать это:
Module Example
   Public Sub Main()
      Dim value As Integer = 2
      Dim result As String = String.Format("{0,5:00000}", value)
      Console.WriteLine(result)
   End Sub
End Module
'The example displays the following output:
'00002


Рейтинг:
1

OriginalGriff

Не делай этого так! Sql Server-это многопользовательская система, и если вы создаете "уникальные номера" в коде своего приложения, вы получите дубликаты, и они могут вызвать огромные проблемы.

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

Если вы хотите отобразить число с ведущими нулями, то все, что вам нужно сделать, это использовать ToString с соответствующей строкой формата:

Dim x As Int = 666
TextBox4.Text = x.ToString("D6")


Рейтинг:
1

Dave Kreskowiak

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

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