2013-10-04 47 views
2

我得到這個錯誤:我正在從Excel導入348k行數據到VB.net SQL。而我得到這個錯誤:超時過期

system.data.sqlclient.sqlexception timeout expired. the timeout period elapsed prior to completion of the operation or the server is not responding.

代碼:

Dim ExcelConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\z.fontanilla\Documents\etl.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=Yes""") 

    ExcelConnection.Open() 

    Dim expr As String = "SELECT * FROM [Sheet1$]" 
    Dim objCmdSelect As OleDbCommand = New OleDbCommand(expr, ExcelConnection) 

    Dim objDR As OleDbDataReader 

    Dim SQLconn As New SqlConnection() 
    Dim ConnString As String = "Data Source=cyayay\sqlexpress;Initial Catalog=reportingDB;Integrated Security=True" 
    SQLconn.ConnectionString = ConnString 
    SQLconn.Open() 


    Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLconn) 
     bulkCopy.DestinationTableName = "tFalse" 

     Try 
      objDR = objCmdSelect.ExecuteReader 
      bulkCopy.WriteToServer(objDR) 
      objDR.Close() 
      SQLconn.Close() 

     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    End Using 
    ExcelConnection.Close() 
+2

也許您的操作需要的時間太長......將其分解爲更小的操作。我的意思是,一次發送批量數據,提交,然後發送另一批。 – Renan

+0

你走了! Woho!有用!謝謝。 – Jake

回答

1

你可以嘗試到objCmdSelect對象上設置的CommandTimeout屬性700(或其他)值。

+0

我已經這樣做了,但仍然是相同的錯誤。 :/ – Jake

相關問題