Я понимаю, что это задано миллион раз, но я не могу найти ответ, который работает. Новое для сервера sql и vs 2010 vb (жалуйтесь боссу, а не мне), выполняя практические задания. Непрерывно получая VARCHAR в числовом исключения в следующем:Varchar to Numeric Exception
Dim height, width As Decimal
height = InputBox("Enter height:")
width = InputBox("Enter width:")
'PRODUCING VARCHAR TO NUMERIC EXCEPTION
command = New SqlCommand("DECLARE @height as decimal(10,2), " & _
"@width as decimal(10,2), " & _
"@area as decimal(10,2); " & _
"SET @height = ' " & height & " '; " & _
"SET @width = ' " & width & " '; " & _
"SET @area = @height * @width; " & _
"IF @height IS NULL OR @width IS NULL " & _
" SELECT 'Either the height or width field was blank.' " & _
"ELSE IF @height <= 0 OR @width <= 0 " & _
" SELECT 'That''s some fancy negative space.' " & _
"ELSE " & _
" SELECT 'The area is: ' [email protected];" _
, connect)
connect.Open()
rdr = command.ExecuteReader()
Я проверил через Тип_переменной(), что данные передается действительно десятичное (я только один тестирование, поэтому не беспокоюсь о том, что контроль ошибок атм). Я попытался использовать переменные с закрытыми одинарными кавычками и без них. Cast() и Convert() не работают (если я не делаю их неправильно?). Не знаете, где проблема?
Не используйте замену строк для сборки sql. Это оставляет вас открытым для некоторых действительно неприятных вопросов безопасности. –
Зачем идти в базу данных, когда вы можете сделать то же самое в vb.net? – shahkalpesh
Проверьте локаль, '10.0' против' 10,0' и разделитель десятичной точки – lad2025