У меня есть файл Excel для загрузки в моем веб-приложении. Когда файл загружен, он должен быть открыт, а затем импортировать данные в таблицу MySQL. Он отлично работает в том, что он добавляет информацию просто отлично. Однако есть проблема в коде, который я не могу заставить правильно проверять дубликат. Отчасти это связано с тем, что в листе Excel, который будет использоваться, нет столбца, который я мог бы использовать в качестве уникального идентификатора. Несколько раз в листе Excel информация полностью совпадала по всей строке, только с разницей в один или два столбца ... Я думал, что мог бы сделать что-то вроде:
Выберите * FROM table_name WHERE table_col_1 = переменная и table_col_2 = переменная 2 и т. Д. ...
Я думаю, что, делая это, я мог бы сравнить значения каждого столбца в строке со значением импорта, и если он будет таким же, он пропустит это ... Однако я не могу понять, как это сделать ... Может быть, я Я думаю об этом глубоко, и есть простой способ сделать это. Ниже приведена функция, которую я использую:
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.Parameters.AddWithValue("@Customer", customer)
command.Parameters.AddWithValue("@Bill_to", bill_to)
command.Parameters.AddWithValue("@Contact", Contact)
command.Parameters.AddWithValue("@Company", Company)
command.Parameters.AddWithValue("@First_Name", firstName)
command.Parameters.AddWithValue("@M_I", mi)
command.Parameters.AddWithValue("@Last_Name", lastname)
command.Parameters.AddWithValue("@Phone", phone)
command.Parameters.AddWithValue("@Alt_Phone", altPhone)
command.Parameters.AddWithValue("@Fax", fax)
command.CommandText = "SELECT * FROM quickbooks_imports WHERE Customer=@Customer, Bill_to=@Bill_to, Contact=@Contact, Company =@Company, First_Name=@First_Name, M_I=@M_I, Last_Name=@Last_Name, Phone =@Phone, Alt_Phone=@Alt_Phone, 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 (@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)
'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()
Try
updateCommand.ExecuteNonQuery()
Catch ex As Exception
Dim _error As String = Nothing
MsgBox(ex.Message)
End Try
_db.SaveChanges()
Else
Dim _NewItem As New quickbooks_imports
_NewItem.Customer = customer
_NewItem.Bill_to = bill_to
_NewItem.Contact = Contact
_NewItem.Company = Company
_NewItem.First_Name = firstName
_NewItem.M_I = mi
_NewItem.Last_Name = lastname
_NewItem.Phone = phone
_NewItem.Alt_Phone = altPhone
_NewItem.Fax = fax
_db.quickbooks_imports.AddObject(_NewItem)
_db.SaveChanges()
End If
_dbconn.Close()
Return View()
End Function
Любая помощь будет принята с благодарностью ...