我寫了OLEDB短函數,它應該讀大量的數據,但仍然有幾個問題我couldnt't解決,這是關於閱讀和插入分號在SQL數據庫導入到數據表使用OLEDB /噴氣
分離數據Private Function GetCSVFile(ByVal file As String) As DataTable
Try
Dim dt As New DataTable
Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & TextBox1.Text & ";Extended Properties=""TEXT;HDR=Yes;FMT=Delimited"""
Dim conn As New OleDb.OleDbConnection(ConStr)
Dim da As New OleDb.OleDbDataAdapter("Select * from " & _table & ".csv", conn)
da.Fill(dt)
Application.DoEvents()
getData = dt
Catch ex As OleDbException
MessageBox.Show(ex.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Return getData
End Function
1.它讀取整個文件,但我需要告訴函數,它應該只讀取50.000行並將它們傳遞給另一個步驟的步驟,它應該可能更好地工作for循環,因爲jet oledb不讀取文件大於1 GB
- 我需要替換字符
value(i) = value(i).Replace("\t", Constants.vbTab).Replace("\n", Constants.vbLf).Replace("\r", Constants.vbCr).Replace("\""", """").Replace("\\", "\")
但它通常僅適用於字符串
我需要認識到的數據類型,如整數,雙,字符串等我的第一個想法是做在SQL查詢和檢查在表的TryParse
Dim dtInserts As DataTable = db.GetDataTable("SELECT TOP 0 * FROM " & _table) Dim ListOfTypes As New List(Of System.Type) For Each _col As DataColumn In dtInserts.Columns Dim _type As System.Type = _col.DataType ListOfTypes.Add(_type) Next Dim _wert1 As String = "11.11.2011" Dim _type1 As System.Type = ListOfTypes.Item(1) If DateTime.TryParse(_wert1, New Date) Then End If
,但仍不能確定是否會工作
所有已讀取的數據都應在1252代碼頁中進行編碼。 這一次並沒有真正的工作
Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & TextBox1.Text & ";Extended Properties=""TEXT;HDR=Yes;FMT=Delimited;CODEPAGE=1252"""
任何人知道什麼可以做?
1個問題,請將4個捆綁在一起使其過於寬泛,太難以發佈簡短的答案。 – Plutonix
看看這裏http://stackoverflow.com/questions/14044727/how-to-remove-character-from-a-given-datatable-column http://stackoverflow.com/questions/1499397/encoding-utf8-string- to-iso-8859-1-string-vb-net –
#3和#4是非常可行的,#2如果沒有樣本數據就太模糊了,無法理解你想要做什麼,#1 *可能*能夠完成本地取決於數據,否則您可能需要添加一個步驟。如果您將問題細化到不太寬泛的地方,您可以在關閉之前得到一些答案 – Plutonix