在Visual Basic中使用mysql的连接错误

时间:2015-03-30 13:06:45

标签: mysql vb.net visual-studio-2013

我尝试在程序中设置与数据库的连接,并且在向数据库添加数据时遇到了问题。我知道我做错了什么,但我不能为我的生活搞清楚!

基本上程序在ExecuteNonQuery()行抛出一个错误,说连接没有打开。但是我上面几行打开了连接?可能是因为我试图从单独的表单导入连接?

错误是:未处理的类型' System.InvalidOperationException'发生在MySql.Data.dll中 附加信息:连接必须有效且开放。

我知道有些部分是被记录出来的,这就是我在做什么事情时的故障排除。

Imports MySql.Data.MySqlClient

Public Class frmCompanyAdd


Public Sub Button1_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
    'Try
    frmMain.conn.Open()
    ' Catch ex As Exception
    'End Try
    Dim cmd As New MySqlCommand(String.Format("INSERT INTO `Company` (`companyname` , `location` , `contactphone` , `numberpc`) VALUES (" & txtcompanyname.Text & "," & txtPst.Text & " , " & txtPhone.Text & "," & txtPcNo.Text & ")"))

    cmd.ExecuteNonQuery()
    'frmMain.conn.Close()


End Sub

1 个答案:

答案 0 :(得分:1)

在构造它之后,您似乎永远不会在cmd命令上设置连接。您需要在构造函数中提供连接或在之后设置它。

像往常一样,我还必须指出您的INSERT语句对可能的恶意SQL注入攻击持开放态度。您应该使用参数化查询,而不是将值连接在一起以形成查询。

我无法安装库,但它可能只是一个构造函数重载,例如Dim cmd As New MySqlCommand(yourProperlyParameterizedQuery, frmMain.conn)