Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将CSV导入SQL Server并删除字符和不需要的文本_Sql Server_Vb.net - Fatal编程技术网

Sql server 如何将CSV导入SQL Server并删除字符和不需要的文本

Sql server 如何将CSV导入SQL Server并删除字符和不需要的文本,sql-server,vb.net,Sql Server,Vb.net,您好,我正在尝试将此csv文件上载到sql server,但在从另一个应用程序创建csv时,会生成许多不需要的文本和字符 我认为这比行分隔符和列分隔符更复杂 以下是我想上传的csv示例: "Report Name: My Keyword Performance Report" "Report Time: 6/10/2015" "Time Zone: (GMT-08:00) Pacific Time (US & Canada); Tijuana" "Last Completed Avail

您好,我正在尝试将此csv文件上载到sql server,但在从另一个应用程序创建csv时,会生成许多不需要的文本和字符

我认为这比行分隔符和列分隔符更复杂

以下是我想上传的csv示例:

"Report Name: My Keyword Performance Report"
"Report Time: 6/10/2015"
"Time Zone: (GMT-08:00) Pacific Time (US & Canada); Tijuana"
"Last Completed Available Day: 6/11/2015 7:00:00 PM (GMT)"
"Last Completed Available Hour: 6/11/2015 7:00:00 PM (GMT)"
"Report Aggregation: Daily"
"Report Filter: "
"Potential Incomplete Data: true"
"Rows: 123"

"GregorianDate","AccountId","CampaignId","Keyword","KeywordId","Device type","BiddedMatchType","Clicks","Impressions","Ctr","AverageCpc","Spend","QualityScore"
"6/10/2015","8455565","110123754","truck","7695873172","Computer","Exact","4","9","44.44","0.66","2.64","10"
"6/10/2015","8455565","110123754","truck","7695873172","Smartphone","Exact","2","3","66.67","0.23","0.45","10"
"6/10/2015","8455565","110123754","truck parts","7695873174","Computer","Exact","5","11","45.45","0.87","4.37","10"
"6/10/2015","8455565","110123754","truck parts","7695873174","Smartphone","Exact","1","1","100.00","0.14","0.14","10"
"6/10/2015","8455565","110123754","truck","7695873185","Computer","Exact","289","565","51.15","0.07","21.41","10"
"6/10/2015","8455565","110123754","truck","7695873185","Smartphone","Exact","64","152","42.11","0.06","3.56","10"
"6/10/2015","8455565","110123754","truck","7761199395","Computer","Phrase","27","105","25.71","0.44","11.98","10"
"6/10/2015","8455565","110123754","truck","7761199395","Smartphone","Phrase","4","23","17.39","0.53","2.13","10"
"6/10/2015","8455565","110123754","truck austin","7695873173","Computer","Exact","0","2","0.00","0.00","0.00","10"

"©2015 Microsoft Corporation. All rights reserved. "
如何将此信息上载到SQL Server?我不知道如何删除“和顶部9行以及包含


有什么建议或代码可以帮助我吗?

如何:创建一个非常简单的
#temp
表:

CREATE TABLE #raw_data
                   (GregorianDate   VARCHAR(500),
                    AccountId       VARCHAR(500),
                    CampaignId      VARCHAR(500),
…诸如此类,你就明白了-它只是一个字符串的哑容器,而不是一个真正的数据结构。然后:

BULK INSERT #raw_data FROM 'myfilepath.csv' WITH
     (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
然后:


剩下的就是您想要的数据。从那里,将它插入到您想要存储它的表中。

这应该可以做到。我检查字符串是否包含“Microsoft”子字符串以便忽略的部分一点也不优雅,但可以做到这一点。我鼓励您找到更好的方法:)

Private子按钮1\u单击(发送方作为System.Object,e作为System.EventArgs)处理按钮1。单击
Dim objReader作为新System.IO.StreamReader(textBoxFileName.Text)
将行数据设置为字符串
作为整数的Dim计数器=1
Do While objReader.Peek()-1
RowData=objReader.ReadLine()。替换(“”,“”)

如果(计数器)您是通过UI还是通过脚本导入?我想通过vb.netOh导入!好的,如果是通过程序导入,那么事情会更“容易”一些。您可以控制csv的内容(这只是一个具有某种格式的文本文件),您可以轻松删除行,替换“我不是一个有经验的VB程序员,但是一旦我有了一些代码,我就会把它发布到这里
BULK INSERT #raw_data FROM 'myfilepath.csv' WITH
     (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
DELETE #raw_data WHERE QualityScore IS NULL
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim objReader As New System.IO.StreamReader(textBoxFileName.Text)
    Dim RowData As String
    Dim counter As Integer = 1

    Do While objReader.Peek() <> -1
        RowData = objReader.ReadLine().Replace("""", "")

        If (counter <= 9) Then
            counter = counter + 1
        Else
            If (RowData.IndexOf("Microsoft") = -1) Then
                RowData.Replace("""", "")
                MessageBox.Show(RowData & " :: This is the data from the line. What to do with it is up to you :)")
            End If
        End If
    Loop
End Sub