2012-02-26 2 views
2

Я использовал следующий оператор для параметра.Ошибка преобразования nvarchar в числовой

.Parameters("@SearchValue").Value = TextBoxParentID.Text 

для этого запроса:

objSqlCommand.CommandText = "Select ID " & _ 
           "From Parents " & _ 
           "Where ID = @SearchValue" 

ID является SQL-сервер числовой столбец, но я получаю эту ошибку:

error converting nvarchar to numeric 

Можете ли вы показать мне кодирования, необходимые исправления этого?

ответ

1

На этом этапе вы пытаетесь присвоить значение, которое имеет строку типа, и параметр связан как строка (nvarchar). Сначала вам нужно преобразовать его.

' Let's suppose that this is a value from your textbox 
    Dim strNumber As String = "12" 

    ' Prepare a placeholder to convert your string value into integer 
    Dim myInteger As Integer 

    ' Try to convert 
    If Int32.TryParse(strNumber, myInteger) Then 
     'If the conversion is successful 

     Dim myConnection As New SqlConnection("Your ConnectionString") 
     Dim myCommand As New SqlCommand("INSERT INTO Foo(Bar) VALUES (@Bar", myConnection) 

     'Use this syntax to assign values to parameters 
     myCommand.Parameters.AddWithValue("Bar", myInteger) 
    End If 

Этот фрагмент также использует метод AddWithValue. Я предлагаю вам использовать этот подход.

+0

Спасибо за быстрый ответ. Я получаю эту ошибку с CInt: «преобразование из строки», чтобы ввести «Integer», недействительно. –

+0

Я нашел проблему. Текстовое поле было опустошено, и это стало причиной «» в сообщении об ошибке. –

+0

Спасибо за код. Я буду использовать его. :-) –

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