繁体   English   中英

使用带VS2010的vb.net在mysql上插入数据

[英]inserting data on mysql using vb.net with VS2010

我试图在mysql中插入数据,但我只是不能这样做我试图在网上搜索答案,并尝试了我的代码上的一切,但它只是不会插入这里是错误的图像希望有人可以帮助我,并提前感谢... 圣诞节快乐 !!

这是代码

    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

删除insert语句中列周围的单引号:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM