У меня есть SqlDataReader, который читает данные из базы данных. Как отформатировать номер телефона, чтобы он возвращался как (123) 456-7890 вместо 1234567890 на моей странице aspx? Мой читатель следующим образом: txtFaxPhone.Text = reader("FaxPhone").ToString()
Формат ASP.Net VB SqlDataReader
comment
Это не сложно. Что вы хотите делать с нулевыми, пустыми более короткими номерами, более длинными номерами. Уже отформатированы номера? Уже отформатированные числа - это другой формат.
- person Tony Hopkinson   schedule 07.03.2013
comment
@TonyHopkinson Если ноль, оставьте поле пустым. числа не оформлены. Просто прочитайте данные из базы данных и выведите в формате телефонного номера. Спасибо.
- person g_shockTan   schedule 07.03.2013
comment
Я понял это, используя: txtFaxPhone.Text = Format(PhoneFormat(reader(FaxPhone).ToString()))
- person g_shockTan   schedule 07.03.2013
comment
Даже не знал, что существует PhoneFormat. Я это запомню.
- person Tony Hopkinson   schedule 07.03.2013
comment
Я не думаю, что существует какой-либо метод PhoneFormat, я думаю, что OP использует собственный метод, который уже определен в их проекте.
- person rs.   schedule 07.03.2013
comment
@TonyHopkinson Причина, по которой PhoneFormat сработала, заключалась в том, что я добавил общедоступную общую функцию PhoneFormat. Так что вы правы, метода PhoneFormat нет.
- person g_shockTan   schedule 08.03.2013
comment
А жаль, пригодился бы. Это было бы одним из моих предложений, другим было бы сделать это в SQL.
- person Tony Hopkinson   schedule 08.03.2013
Ответы (1)
Попробуйте что-то вроде этого:
If reader.IsDbNull(reader.GetOrdinal("FaxPhone"))
txtFaxPhone.Text = String.Empty
Else
txtFaxPhone.Text = String.Format("(000) 000-0000", reader("FaxPhone"))
End If
Примечание: это предполагает, что ваш номер телефона является числом. Если это строка, вам придется ее подстроку.
person
Ann L.
schedule
07.03.2013
Я попробовал ваше предложение и получил следующую ошибку: System.IndexOutOfRangeException: FaxNumber. Как бы вы его подстрочили?
- person g_shockTan; 07.03.2013
Похоже, вы использовали FaxNumber, а не FaxPhone в качестве имени поля. Который из них?
- person Ann L.; 07.03.2013