2016-12-24 5 views
1

im пытается вставить данные в mysql, но я просто не могу это сделать. Ive попытался найти ответы в сети и попробовал все на моем коде, но он просто не вставляет here is the image of the error надеюсь, что некоторые можно мне помочь и поблагодарить заранее ... РОЖДЕСТВЕНСКИЙ РОЖДЕСТВЕНСКИЙ!Вставка данных на mysql с помощью vb.net с VS2010

здесь код

myconn = New MySqlConnection 
    myconn.ConnectionString = "host=127.0.0.1;user=root;password=;database=engr_log" 
    Dim Reader As MySqlDataReader 
    Try 
     myconn.Open() 
     Dim query As String 
     query = "insert into log_tbl ('ID', 'owner_name', 'business_name', 'Amount_paid', 'Location', 'Date') values (NULL, '" & txtname.Text & "','" & txtbus.Text & "','" & txtamount.Text & "', '" & txtloc.Text & "','" & dtp1.Value & "');" 
     command = New MySqlCommand(query, myconn) 
     Reader = command.ExecuteReader 
     MessageBox.Show("Entry Saved!!","SAVE", MessageBoxButtons.OK, MessageBoxIcon.Information) 
     myconn.Close() 
    Catch ex As Exception 
     MsgBox(ex.Message.ToString) 
    End Try 
    getlist() 
End Sub 

ответ

0

Удалить одиночные кавычки колонки в вашей вставки даного:

insert into log_tbl (ID, owner_name, business_name, Amount_paid, Location, Date) ...

Но большая проблема в том, вы должны использовать запросы с чтобы не только избежать ошибок, но и SQL-инъекций.

Пример:

Dim connectionString = "host=127.0.0.1;user=root;password=;database=engr_log" 
Dim query = "insert into log_tbl (owner_name, business_name, Amount_paid, Location, Date) values (@owner_name, @business_name, @Amount_paid, @Location, @Date);" 
Using connection As New MySqlConnection(connectionString) 
    Dim command As New MySqlCommand(query, connection) 
    command.Parameters.AddWithValue("@owner_name", txtname.Text) 
    command.Parameters.AddWithValue("@business_name", txtbus.Text) 
    command.Parameters.AddWithValue("@Amount_paid", txtamount.Text) 
    command.Parameters.AddWithValue("@Location", txtloc.Text) 
    command.Parameters.AddWithValue("@Date", dtp1.Text) 
    command.Connection.Open() 
    command.ExecuteNonQuery() 
End Using 

Даже лучше, вы можете быть явно с типами:

command.Parameters.Add("@owner_name", SqlDbType.VarChar) 
command.Parameters.Add("@business_name", SqlDbType.VarChar) 
command.Parameters.Add("@Amount_paid", SqlDbType.Float) 
command.Parameters.Add("@Location", SqlDbType.VarChar) 
command.Parameters.Add("@Date", SqlDbType.DateTime) 
+0

Спасибо сэр Вашего предложение работает, но я просто я второстепенная проблема как я сочетающие параметры с addvalue: –

+0

Вы должны сообщить мне дополнительную информацию, этот код не проверен – meda

+0

Извините, я не заметил, что я ввел свой комментарий с неполным содержанием , что я имею в виду, как объединить нормальный параметр, который равен .Parameters.AddWithValue ("@ owner_name", txtname.Text) с одной с явным типом .Parameters.Add ("@ OWNER_NAME:", SqlDbType.Varchar) –