Web アプリケーションに Excel ファイルをアップロードしています。ファイルがアップロードされると、ファイルが開かれ、データが mysql テーブルにインポートされます。情報を適切に追加するという点で、正常に機能します。ただし、コードに問題があり、重複チェックが正しく機能しません。これの一部は、使用される Excel シートに一意の識別子として使用できる列がないためです。Excelシートで数回、情報は行全体で完全に同一であり、1つまたは2つの列だけが異なります...私は次のようなことができると考えていました:Select * FROM table_name WHERE table_col_1 = variable and table_col_2 = variable 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
どんな助けでも大歓迎です...