2015-07-08 2 views
0

После того как я запустить программу, добавить данные, а затем я получаю сообщение:неявного преобразования типа данных VARCHAR в VARBINARY не допускается

неявного преобразования типа данных VARCHAR в VARBINARY не допускается

Я смотрел этот video на YouTube, и я сделал то же самое, что и youtuber. Это работает для него, но не для меня.

Я пытаюсь добавить данные из Visual Studio в базу данных SQL:

Вот код:

Imports System.Data.SqlClient 
SELECT CONVERT(varchar(100), CONVERT(varbinary(max),'0xFFD8FFE000')) 
Public Class Form1 

Dim Conn As SqlConnection 
Dim CMD As SqlCommand 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Conn = New SqlConnection 
    Conn.ConnectionString = "Data Source=BYG-A101-MOELKA;Initial Catalog=App;Integrated Security=True" 
    Dim READER As SqlDataReader 

    Try 

     Conn.Open() 
     Dim Query As String 
     Query = "insert into person (ID,firstname,lastname,age) values ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')" 

     CMD = New SqlCommand(Query, Conn) 
     READER = CMD.ExecuteReader 
     MessageBox.Show("Datasaved") 

     Conn.Close() 

    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    Finally 
     Conn.Dispose() 

    End Try 


End Sub 
+0

Но какие данные подходят для хранения как двоичных, так и символов? – jarlh

+0

Схема таблицы 'person'? И почему вы используете CMD.ExecuteReader()? И, пожалуйста, не используйте конкатенацию строк. См. Http://stackoverflow.com/questions/17729200/executenonquery-for-insert – Stan

+0

Я только сделал то, что сделал youtuber, в его случае он отлично работает !! Я создал таблицу в таких: ID INT PrimaryKey FirstName Varchar (50) LastName Varchar (50) Возраст ИНТ – Kalash

ответ

1

Несколько проблем

ExecuteReader не следует использовать для вставки
использование ExecuteNonQuery

Это подлежит инъекции. Используйте parameters. Параметры должны соответствовать типу данных столбцов таблицы.

+0

Я пытался много узнать о параметрах ... но я не могу понять, как сделать его с моим кодом. Кроме того, как я уже сказал, я пытаюсь узнать, как из youtuber (я опубликовал ссылку). В его случае это работает нормально. Можете ли вы, пожалуйста, продемонстрировать это для меня. я застрял – Kalash

+0

Начать с ExecuteReader не следует использовать для вставки – Paparazzi

+0

Хорошо, что я сделал, я удалил (READER = CMD.ExecuteReader) и заменил его на (CMD.ExecuteNonQuery) Такая же проблема – Kalash

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