将某些字符串从excel工作表导入mysql时出现问题

将某些字符串从excel工作表导入mysql时出现问题,mysql,vb.net,excel,import-from-excel,Mysql,Vb.net,Excel,Import From Excel,我正在处理一个应用程序的一部分,该应用程序需要将数据从excel工作表导入mysql数据库表。代码工作正常,直到它到达excel表中的一个记录,其中一个字符串值被分配到ABCDE All'John D Doe 999 West Lame Blvd Cullman,AL 35055。我不确定,但我相信这完全是因为出现在那里的那个“错误”。它不能更改,Excel工作表中的其他记录可能包含“以及…”。。。当它到达该记录时,会抛出以下错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以

我正在处理一个应用程序的一部分,该应用程序需要将数据从excel工作表导入mysql数据库表。代码工作正常,直到它到达excel表中的一个记录,其中一个字符串值被分配到ABCDE All'John D Doe 999 West Lame Blvd Cullman,AL 35055。我不确定,但我相信这完全是因为出现在那里的那个“错误”。它不能更改,Excel工作表中的其他记录可能包含“以及…”。。。当它到达该记录时,会抛出以下错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行的“John D Doe”、“ABCDE”、“All'John”、“D”、“Doe”、“256-555-5555”、“256-555-5555”附近使用的正确语法

关于这个问题,我的代码如下:

        Private Function PerFormUpdate(ByVal customer As String, ByVal bill_to As String, ByVal Contact As String, ByVal Company As String, ByVal firstName As String, ByVal mi As String, ByVal lastname As String, ByVal phone As String, ByVal altPhone As String, ByVal fax As String)
        Dim _db As New schoolEntities

        Dim command As MySqlCommand = _dbconn.CreateCommand()
        command.CommandText = "SELECT * FROM quickbooks_imports WHERE Customer= "" &  _customer& "" & Bill_to= "" & _bill_to& "" & Contact= "" & _Company& ""& First_Name= "" & _firstName& "" & M_I= "" & _mi& "" & Last_Name= "" & _lastname& "" & Phone= "" & _phone& "" & Alt_Phone= "" & _altPhone& "" & Fax= "" & _Fax& """
        _dbconn.Open()

        Dim _mysqlReader As MySqlDataReader = command.ExecuteReader()
        _dbconn.Close()

        If Not _mysqlReader.HasRows Then
            Dim _UpdateItem As New quickbooks_imports
            Dim updateCommand As MySqlCommand = _dbconn.CreateCommand()

            _UpdateItem.Customer = customer
            _UpdateItem.Bill_to = bill_to
            _UpdateItem.Contact = Contact
            _UpdateItem.Company = Company
            _UpdateItem.First_Name = firstName
            _UpdateItem.M_I = mi
            _UpdateItem.Last_Name = lastname
            _UpdateItem.Phone = phone
            _UpdateItem.Alt_Phone = altPhone
            _UpdateItem.Fax = fax

            updateCommand.CommandText = "INSERT INTO quickbooks_imports(Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ('" & _UpdateItem.Customer & "','" & _UpdateItem.Bill_to & "','" & _UpdateItem.Contact & "','" & _UpdateItem.Company & "','" & _UpdateItem.First_Name & "','" & _UpdateItem.M_I & "','" & _UpdateItem.Last_Name & "','" & _UpdateItem.Phone & "','" & _UpdateItem.Alt_Phone & "','" & _UpdateItem.Fax & "') "
            _dbconn.Open()
            updateCommand.ExecuteNonQuery()

            _db.SaveChanges()
            Private Function PerFormUpdate(ByVal customer As String, ByVal bill_to As String, ByVal Contact As String, ByVal Company As String, ByVal firstName As String, ByVal mi As String, ByVal lastname As String, ByVal phone As String, ByVal altPhone As String, ByVal fax As String)
        Dim _db As New schoolEntities

        Dim command As MySqlCommand = _dbconn.CreateCommand()
        command.CommandText = "SELECT * FROM quickbooks_imports WHERE Customer= "" & _customer& "" & Bill_to= "" & _bill_to& "" & Contact= "" & _Company& ""& First_Name= "" & _firstName& "" & M_I= "" & _mi& "" & Last_Name= "" & _lastname& "" & Phone= "" & _phone& "" & Alt_Phone= "" & _altPhone& "" & Fax= "" & _Fax& """
        _dbconn.Open()

        Dim _mysqlReader As MySqlDataReader = command.ExecuteReader()
        _dbconn.Close()

        If Not _mysqlReader.HasRows Then
            Dim _UpdateItem As New quickbooks_imports
            Dim updateCommand As MySqlCommand = _dbconn.CreateCommand()

            _UpdateItem.Customer = customer
            _UpdateItem.Bill_to = bill_to
            _UpdateItem.Contact = Contact
            _UpdateItem.Company = Company
            _UpdateItem.First_Name = firstName
            _UpdateItem.M_I = mi
            _UpdateItem.Last_Name = lastname
            _UpdateItem.Phone = phone
            _UpdateItem.Alt_Phone = altPhone
            _UpdateItem.Fax = fax

            updateCommand.CommandText = "INSERT INTO quickbooks_imports (Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
            updateCommand.Parameters.AddWithValue("@Customer", _UpdateItem.Customer)
            updateCommand.Parameters.AddWithValue("@Bill_to", _UpdateItem.Bill_to)
            updateCommand.Parameters.AddWithValue("@Contact", _UpdateItem.Contact)
            updateCommand.Parameters.AddWithValue("@Company", _UpdateItem.Company)
            updateCommand.Parameters.AddWithValue("@First_Name", _UpdateItem.First_Name)
            updateCommand.Parameters.AddWithValue("@M_I", _UpdateItem.M_I)
            updateCommand.Parameters.AddWithValue("@Last_Name", _UpdateItem.Last_Name)
            updateCommand.Parameters.AddWithValue("@Phone", _UpdateItem.Phone)
            updateCommand.Parameters.AddWithValue("@Alt_Phone", _UpdateItem.Alt_Phone)
            updateCommand.Parameters.AddWithValue("@Fax", _UpdateItem.Fax)



            'updateCommand.CommandText = "INSERT INTO EXCEL (id,Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ('" & _UpdateItem.id & "','" & _UpdateItem.Customer & "','" & _UpdateItem.Bill_to & "','" & _UpdateItem.Contact & "','" & _UpdateItem.Company & "','" & _UpdateItem.First_Name & "','" & _UpdateItem.M_I & "','" & _UpdateItem.Last_Name & "','" & _UpdateItem.Phone & "','" & _UpdateItem.Alt_Phone & "','" & _UpdateItem.Fax & "') ON DUPLICATE KEY UPDATE Customer= '" & _UpdateItem.Customer & "' Bill_to= '" & _UpdateItem.Bill_to & "' Contact= '" & _UpdateItem.Contact & "' Company= '" & _UpdateItem.Company & "' First_Name= '" & _UpdateItem.First_Name & "' M_I= '" & _UpdateItem.M_I & "' Last_Name= '" & _UpdateItem.Last_Name & "' Phone= '" & _UpdateItem.Phone & "' Alt_Phone= '" & _UpdateItem.Alt_Phone & "' Fax= '" & _UpdateItem.Fax & "'"
            'updateCommand.CommandText = "INSERT INTO quickbooks_imports (Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ('" & _UpdateItem.Customer & "','" & _UpdateItem.Bill_to & "','" & _UpdateItem.Contact & "','" & _UpdateItem.Company & "','" & _UpdateItem.First_Name & "','" & _UpdateItem.M_I & "','" & _UpdateItem.Last_Name & "','" & _UpdateItem.Phone & "','" & _UpdateItem.Alt_Phone & "','" & _UpdateItem.Fax & "') "
            _dbconn.Open()
            updateCommand.ExecuteNonQuery()

            _db.SaveChanges()
错误显示在执行更新的ExecuteOnQuery上

任何帮助都将不胜感激

根据您的回复,我切换到参数,这是新代码:

            updateCommand.CommandText = "INSERT INTO quickbooks_imports (Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ? )"
            updateCommand.Parameters.AddWithValue("Customer", _UpdateItem.Customer)
            updateCommand.Parameters.AddWithValue("Bill_to", _UpdateItem.Bill_to)
            updateCommand.Parameters.AddWithValue("Contact", _UpdateItem.Contact)
            updateCommand.Parameters.AddWithValue("Company", _UpdateItem.Company)
            updateCommand.Parameters.AddWithValue("First_Name", _UpdateItem.First_Name)
            updateCommand.Parameters.AddWithValue("M_I", _UpdateItem.M_I)
            updateCommand.Parameters.AddWithValue("Last_Name", _UpdateItem.Last_Name)
            updateCommand.Parameters.AddWithValue("Phone", _UpdateItem.Phone)
            updateCommand.Parameters.AddWithValue("Alt_Phone", _UpdateItem.Alt_Phone)
            updateCommand.Parameters.AddWithValue("Fax", _UpdateItem.Fax)
它现在抛出了一个致命的异常

我刚刚尝试使用您在回复中提到的名称参数,代码如下:

        Private Function PerFormUpdate(ByVal customer As String, ByVal bill_to As String, ByVal Contact As String, ByVal Company As String, ByVal firstName As String, ByVal mi As String, ByVal lastname As String, ByVal phone As String, ByVal altPhone As String, ByVal fax As String)
        Dim _db As New schoolEntities

        Dim command As MySqlCommand = _dbconn.CreateCommand()
        command.CommandText = "SELECT * FROM quickbooks_imports WHERE Customer= "" &  _customer& "" & Bill_to= "" & _bill_to& "" & Contact= "" & _Company& ""& First_Name= "" & _firstName& "" & M_I= "" & _mi& "" & Last_Name= "" & _lastname& "" & Phone= "" & _phone& "" & Alt_Phone= "" & _altPhone& "" & Fax= "" & _Fax& """
        _dbconn.Open()

        Dim _mysqlReader As MySqlDataReader = command.ExecuteReader()
        _dbconn.Close()

        If Not _mysqlReader.HasRows Then
            Dim _UpdateItem As New quickbooks_imports
            Dim updateCommand As MySqlCommand = _dbconn.CreateCommand()

            _UpdateItem.Customer = customer
            _UpdateItem.Bill_to = bill_to
            _UpdateItem.Contact = Contact
            _UpdateItem.Company = Company
            _UpdateItem.First_Name = firstName
            _UpdateItem.M_I = mi
            _UpdateItem.Last_Name = lastname
            _UpdateItem.Phone = phone
            _UpdateItem.Alt_Phone = altPhone
            _UpdateItem.Fax = fax

            updateCommand.CommandText = "INSERT INTO quickbooks_imports(Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ('" & _UpdateItem.Customer & "','" & _UpdateItem.Bill_to & "','" & _UpdateItem.Contact & "','" & _UpdateItem.Company & "','" & _UpdateItem.First_Name & "','" & _UpdateItem.M_I & "','" & _UpdateItem.Last_Name & "','" & _UpdateItem.Phone & "','" & _UpdateItem.Alt_Phone & "','" & _UpdateItem.Fax & "') "
            _dbconn.Open()
            updateCommand.ExecuteNonQuery()

            _db.SaveChanges()
            Private Function PerFormUpdate(ByVal customer As String, ByVal bill_to As String, ByVal Contact As String, ByVal Company As String, ByVal firstName As String, ByVal mi As String, ByVal lastname As String, ByVal phone As String, ByVal altPhone As String, ByVal fax As String)
        Dim _db As New schoolEntities

        Dim command As MySqlCommand = _dbconn.CreateCommand()
        command.CommandText = "SELECT * FROM quickbooks_imports WHERE Customer= "" & _customer& "" & Bill_to= "" & _bill_to& "" & Contact= "" & _Company& ""& First_Name= "" & _firstName& "" & M_I= "" & _mi& "" & Last_Name= "" & _lastname& "" & Phone= "" & _phone& "" & Alt_Phone= "" & _altPhone& "" & Fax= "" & _Fax& """
        _dbconn.Open()

        Dim _mysqlReader As MySqlDataReader = command.ExecuteReader()
        _dbconn.Close()

        If Not _mysqlReader.HasRows Then
            Dim _UpdateItem As New quickbooks_imports
            Dim updateCommand As MySqlCommand = _dbconn.CreateCommand()

            _UpdateItem.Customer = customer
            _UpdateItem.Bill_to = bill_to
            _UpdateItem.Contact = Contact
            _UpdateItem.Company = Company
            _UpdateItem.First_Name = firstName
            _UpdateItem.M_I = mi
            _UpdateItem.Last_Name = lastname
            _UpdateItem.Phone = phone
            _UpdateItem.Alt_Phone = altPhone
            _UpdateItem.Fax = fax

            updateCommand.CommandText = "INSERT INTO quickbooks_imports (Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
            updateCommand.Parameters.AddWithValue("@Customer", _UpdateItem.Customer)
            updateCommand.Parameters.AddWithValue("@Bill_to", _UpdateItem.Bill_to)
            updateCommand.Parameters.AddWithValue("@Contact", _UpdateItem.Contact)
            updateCommand.Parameters.AddWithValue("@Company", _UpdateItem.Company)
            updateCommand.Parameters.AddWithValue("@First_Name", _UpdateItem.First_Name)
            updateCommand.Parameters.AddWithValue("@M_I", _UpdateItem.M_I)
            updateCommand.Parameters.AddWithValue("@Last_Name", _UpdateItem.Last_Name)
            updateCommand.Parameters.AddWithValue("@Phone", _UpdateItem.Phone)
            updateCommand.Parameters.AddWithValue("@Alt_Phone", _UpdateItem.Alt_Phone)
            updateCommand.Parameters.AddWithValue("@Fax", _UpdateItem.Fax)



            'updateCommand.CommandText = "INSERT INTO EXCEL (id,Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ('" & _UpdateItem.id & "','" & _UpdateItem.Customer & "','" & _UpdateItem.Bill_to & "','" & _UpdateItem.Contact & "','" & _UpdateItem.Company & "','" & _UpdateItem.First_Name & "','" & _UpdateItem.M_I & "','" & _UpdateItem.Last_Name & "','" & _UpdateItem.Phone & "','" & _UpdateItem.Alt_Phone & "','" & _UpdateItem.Fax & "') ON DUPLICATE KEY UPDATE Customer= '" & _UpdateItem.Customer & "' Bill_to= '" & _UpdateItem.Bill_to & "' Contact= '" & _UpdateItem.Contact & "' Company= '" & _UpdateItem.Company & "' First_Name= '" & _UpdateItem.First_Name & "' M_I= '" & _UpdateItem.M_I & "' Last_Name= '" & _UpdateItem.Last_Name & "' Phone= '" & _UpdateItem.Phone & "' Alt_Phone= '" & _UpdateItem.Alt_Phone & "' Fax= '" & _UpdateItem.Fax & "'"
            'updateCommand.CommandText = "INSERT INTO quickbooks_imports (Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ('" & _UpdateItem.Customer & "','" & _UpdateItem.Bill_to & "','" & _UpdateItem.Contact & "','" & _UpdateItem.Company & "','" & _UpdateItem.First_Name & "','" & _UpdateItem.M_I & "','" & _UpdateItem.Last_Name & "','" & _UpdateItem.Phone & "','" & _UpdateItem.Alt_Phone & "','" & _UpdateItem.Fax & "') "
            _dbconn.Open()
            updateCommand.ExecuteNonQuery()

            _db.SaveChanges()
我仍然在updateCommand.ExecuteOnQuery上遇到致命的异常

在命令执行期间遇到致命错误

InnerException消息:必须定义参数“?”。

您需要使用能够正确转义字符串以执行数据库的参数

请参阅此链接

编辑:尝试改用命名参数:

updateCommand.CommandText = "INSERT INTO quickbooks_imports (Customer,Bill_to,Contact,Company,First_Name,M_I,Last_Name,Phone,Alt_Phone,Fax) VALUES ("@Customer", "@Bill_to", "@Contact", "@Company", "@First_Name", "@M_I", "@Last_Name", "@Phone", "@Alt_Phone", "@Fax")"
updateCommand.Parameters.AddWithValue("@Customer", _UpdateItem.Customer)
updateCommand.Parameters.AddWithValue("@Bill_to", _UpdateItem.Bill_to)
updateCommand.Parameters.AddWithValue("@Contact", _UpdateItem.Contact)
updateCommand.Parameters.AddWithValue("@Company", _UpdateItem.Company)
updateCommand.Parameters.AddWithValue("@First_Name", _UpdateItem.First_Name)
updateCommand.Parameters.AddWithValue("@M_I", _UpdateItem.M_I)
updateCommand.Parameters.AddWithValue("@Last_Name", _UpdateItem.Last_Name)
updateCommand.Parameters.AddWithValue("@Phone", _UpdateItem.Phone)
updateCommand.Parameters.AddWithValue("@Alt_Phone", _UpdateItem.Alt_Phone)
updateCommand.Parameters.AddWithValue("@Fax", _UpdateItem.Fax)

我去那里仔细阅读了材料,认为我是对的,但现在它抛出了一个致命的异常错误,说:必须定义参数“?”。尝试只使用参数。添加而不是参数。添加WithValue.With参数。添加它仍然抛出致命的异常,并且VS 2010在参数下面加下划线。添加绿色,表示它的无法使用parameters.addwithvalue。。。。我已经将其更改为参数。添加并仍然得到相同的异常查看我更新的答案,希望我没有输入太多的错误。我尝试了你的建议,但它仍然抛出相同的致命异常。。当前代码在我编辑的文章底部的上方。。