2014-02-20 3 views
-3

У меня есть поле таблицы базы данных типа string. Данные в этой области имеет значения, как:Как преобразовать строку в целое число

1/2014

2/2014

Теперь я хочу увеличение поля к 3/2014 с использованием VB.NET.
Обратите внимание, что 1 и 2 не месяц, это серийный номер.

Как я могу это сделать?

+0

Похоже, дата MM/yyyy для меня, а не int. Попробуйте использовать 'DateTime.Now.AddMonths (1)'. – Tim

+0

вам нужно увеличить месяц каждого поля на один? – Damith

ответ

6

Вы не используете преобразование цепочки в целое, вы работаете с датами.

Предполагается, что ваш формат даты M/yyyy, а затем использовать это:

Dim dateValue As DateTime = DateTime.ParseExact(myFieldValue, "M/yyyy", CultureInfo.InvariantCulture) 
dateValue = dateValue.AddMonths(1) 
SaveNewDate(dateValue) 
+1

ParseExact требует трех аргументов –

+0

@MattWilko Спасибо, я исправил его. – Dai

3

Как вы заявили, что это не даты, вы можете использовать Split на строку, чтобы извлечь первую часть, а затем пытаться для разбора этого в значение Integer:

Dim s As String = "2/2014" 
Dim serialNo As Integer 
If Not Int32.TryParse(s.Split("/"c)(0), serialNo) Then 
    'throw an error here because the string was no in the expected format 
End If 
serialNo += 1 
s = serialNo.ToString + s.Substring(s.IndexOf("/")) 

Debug.WriteLine(s) 

Выходной

3/2014 

Обратите внимание, что перед началом работы вы можете проверить, что строка содержит символ /.

Еще лучше сохраните серийный номер в качестве отдельного поля Integer в базе данных для начала.

Смежные вопросы