【问题标题】:vb.net import csv file to devexpress gridviewvb.net 将 csv 文件导入到 devexpress gridview
【发布时间】:2018-08-21 08:07:55
【问题描述】:

目前我在将 csv 文件导入 devexpress gridview 时遇到问题,当我执行代码时,显示以下错误 'C:\New folder\QtimeAutomotiveByLot_new.csv' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides. 并且文件路径在我这边工作得很好。我的代码如下,有人可以指导我吗?

asp.net

<dx:ASPxGridView ID="DetailGridx" runat="server"  OnDataBinding="DetailGridx_DataBinding">

vb.net

  Protected Sub DetailGridx_DataBinding(sender As Object, e As EventArgs)

        Dim dt1 As New DataTable()
        Dim csvFileFolder As String = "C:\New folder\QtimeAutomotiveByLot_New.csv"
        'Dim csvFile As String = "QtimeAutomotiveByLot_New.csv"
        Dim strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + csvFileFolder + ";Extended Properties='Text;HDR=YES;IMEX=1;';"
        Dim connx As New OleDbConnection(strCon)
        Dim adapter1 As New OleDbDataAdapter
        connx.Open()

        Dim sql As New OleDbCommand("Select * FROM [" + csvFileFolder + "]", connx)

        adapter1.SelectCommand = sql

        adapter1.Fill(dt1)

        connx.Close()

        Dim detailGrid As ASPxGridView = CType(sender, ASPxGridView)
        Dim RowLotID As String = TryCast(sender, ASPxGridView).GetMasterRowFieldValues("LOTID")
        Dim ddata As DataView = New DataView(dt1)
        ddata.RowFilter = "LOTID = '" + RowLotID + "'"
        detailGrid.DataSource = ddata
        detailGrid.DataBind()

    End Sub

【问题讨论】:

  • 您应该使用连接字符串中的文件夹路径和查询中的文件名,而不是两者中的文件路径。实际上,文件夹是数据库,文件是表。

标签: vb.net devexpress import-csv


【解决方案1】:

听起来您当前读取 CSV 文件的连接字符串是错误的。与读取 Excel 文件不同,读取 CSV 文件时,我们不指定实际文件名,而是指定它所属的目录路径(请参阅this issue)。

以下示例显示如何使用 Jet 4.0 提供程序读取 CSV 文件。请注意,不要设置IMEX=1,而是使用FMT=Delimited 属性,因为IMEX 主要用于XLS 和XLSX 文件格式:

Protected Sub DetailGridx_DataBinding(sender As Object, e As EventArgs)

    Dim dt1 As New DataTable()
    Dim csvFileFolder As String = "C:\New folder\"
    Dim csvFile As String = "QtimeAutomotiveByLot_New.csv"

    ' specify directory path containing CSV file as data source
    Dim strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + csvFileFolder + ";Extended Properties='Text;HDR=YES;FMT=Delimited';"

    Dim connx As New OleDbConnection(strCon)
    Dim adapter1 As New OleDbDataAdapter
    connx.Open()

    ' specify actual file name here
    Dim sql As New OleDbCommand("Select * FROM [" + csvFile + "]", connx)

    adapter1.SelectCommand = sql

    adapter1.Fill(dt1)

    connx.Close()

    Dim detailGrid As ASPxGridView = CType(sender, ASPxGridView)
    Dim RowLotID As String = TryCast(sender, ASPxGridView).GetMasterRowFieldValues("LOTID")
    Dim ddata As DataView = New DataView(dt1)
    ddata.RowFilter = "LOTID = '" + RowLotID + "'"
    detailGrid.DataSource = ddata
    detailGrid.DataBind()

End Sub

【讨论】:

    猜你喜欢
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多