2011-09-29 40 views
0

我有我的web應用程序上傳excel文件。當文件上傳時,它應該被打開,然後將數據導入到一個mysql表中。它工作正常,因爲它增加了信息很好。但是有一個問題,我無法獲得重複檢查正常工作的代碼。部分原因是因爲將使用的Excel工作表沒有任何可用作唯一標識符的列。在excel表格中,有多次信息在整行中完全相同,只有一列或兩列不同......我想我可以這樣做: select * FROM table_name WHERE table_col_1 = variable且table_col_2 = variable 2和等...有沒有辦法檢查重複時使用vb.net導入Excel表格到Excel表格

我在想這樣做,我可以比較行中的每一列的值與導入值,如果它相同,它會跳過它......但我不能讓我的頭靠近它...也許我正在深入思考,並有一個簡單的方法來做到這一點。下面是我使用的功能:

  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 [email protected], [email protected]_to, [email protected], Company [email protected], [email protected]_Name, [email protected]_I, [email protected]_Name, Phone [email protected], [email protected]_Phone, [email protected]" 

     _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 

任何幫助將不勝感激......

回答

0

嘗試從Excel中插入數據到另一個表(也許是臨時表),然後將需要的數據從其他表中複製到目標表中。 -

INSERT INTO table1 SELECT DISTINCT * FROM temp_table; 
0
declare @tempExist varchar(50); 
set @tempExist=null; 

select @tempExist=[ColumnName1] from [TableName] 
where [ColumnName1][email protected] or [ColumnName2]= @ColumnName2 and so on.. 

if(@tempExist!=NULL) 
Begin 
Insert into [TableName] (...) 
End 

上面的代碼是MSSQL ..和一些語法可能是錯的..但是這我想到的..

但這可能會提示ua提示..祝您好運!

+0

我試圖將這個實現到我現有的代碼中,但是由於我對mysql語句和語法的瞭解有限,所以我沒有成功。它似乎是沿着我正在尋找的線雖然.. – Skindeep2366

+0

鄧執行他們直接..我的MySQL技能是真的在我身後,因爲我一直在處理mssql一年半.. hav來調整代碼..無論如何..只是想給你一個想法.. – william

相關問題