将Excel文件从ASP.NET应用程序上载到MySQL时出错

Orl*_*res 15 mysql vb.net asp.net excel-interop

我正在使用MySQL数据库处理Web应用程序(ASP.NET).当我尝试通过此应用程序上传Excel文件(.xlsx)时,我没有任何问题.当文件超过24904条记录时,问题就开始了.

那时我得到以下错误:

此表包含超出此电子表格中定义的单元格范围的单元格.

它写下了第一批24904条记录.

我试图以多个批次分割负载,但它不起作用.

有什么想法吗?

Dim connExcel As New System.Data.OleDb.OleDbConnection(conStr)
Dim cmdExcel As New System.Data.OleDb.OleDbCommand()
Dim dt As New DataTable()
Dim dataset As New DataSet
Dim x As Integer = 2
Dim y As Integer = 20001
Dim range As String = "A" + x.ToString + ":" + "I" + y.ToString

cmdExcel.Connection = connExcel

If erro = 0 Then
    Try

        For i As Integer = 0 To 50
            connExcel.Open()

            dataset.Reset()
            dataset.Clear()

            Dim oda As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$" & range.ToString & "]", connExcel)
            oda.TableMappings.Add("Table", "ExcelTest")

            oda.Fill(dataset)
            connExcel.Close()

            If dataset.Tables(0).Rows.Count > 0 Then
                SendToDB(dataset)
            Else
                i = 50
            End If

            x = x + 20000
            y = y + 20000

            range = "A" + x.ToString + ":" + "I" + y.ToString
        Next

        Label7.Visible = True
        Label7.Text = "The information has been written successfully from 0 to " + y.ToString

    Catch ex As Exception
        Label9.Visible = True
        Label9.Text = "Database Error 2:" + ex.Message
        connExcel.Close()
    End Try
End If
Run Code Online (Sandbox Code Playgroud)

Der*_*mes 0

我怀疑您已达到 Excel 限制(例如可以添加的表映射数量)

尝试以更高的数字开始循环计数,看看是否是执行此操作的次数而不是导致问题的数据。也许是这样的:

Dim x As Integer = 40002
Dim y As Integer = 60001
Run Code Online (Sandbox Code Playgroud)