简体   繁体   中英

getting row value from datatable

Dim flag As Boolean = True

Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)

Dim fileExtension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)

Dim fileLocation As String = Server.MapPath("~/Upload/" & fileName)

       'Check whether file extension is xls or xslx
        If fileExtension = ".xls" Then
            connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fileLocation & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2"""
        ElseIf fileExtension = ".xlsx" Then
            connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fileLocation & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2"""
        End If

        'Create OleDB Connection and OleDb Command

        Dim con As New OleDbConnection(connectionString)
        Dim cmd As New OleDbCommand()
        cmd.CommandType = System.Data.CommandType.Text
        cmd.Connection = con
        Dim dAdapter As New OleDbDataAdapter(cmd)
        Dim dtExcelRecords As New DataTable()
        con.Open()
        Dim dtExcelSheetName As DataTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
        Dim getExcelSheetName As String = dtExcelSheetName.Rows(0)("Table_Name").ToString()
        cmd.CommandText = "SELECT * FROM [" & getExcelSheetName & "]"
        dAdapter.SelectCommand = cmd
        dAdapter.Fill(dtExcelRecords)
        con.Close()

        Dim row As DataRow
        For Each row In dtExcelRecords.Rows
            If Include.ConvertDbNullToEmpyString(row(2)) = "" Then
                MsgBox("Error in saving!")
                Exit For

            End If
            MsgBox(row(0) & " " & row(1) & " " & row(2) & " " & row(3))
        Next


        GridView1.DataSource = dtExcelRecords

        GridView1.DataBind()
        ViewState("file") = dtExcelRecords


        Dim dataSet As DataSet = New DataSet("dataSet")
        dataSet.Tables.Add(dtExcelRecords)
        '' Display the DataSet contents as XML.
        Console.WriteLine(dataSet.Tables(0).DataSet.GetXml())

I had code which use to upload file excel into datatable and show at gridview.

After show at gridview, the excel value which has been convert into datatable and showed at gridview will be saved to database.

My problem :

 Dim row As DataRow For Each row In dtExcelRecords.Rows If Include.ConvertDbNullToEmpyString(row(2)) = "" Then MsgBox("Error in saving!") Exit For End If MsgBox(row(0) & " " & row(1) & " " & row(2) & " " & row(3)) Next 

that was code to get the row value.

But how to set datatable with new data row?

If i had null value in row 2 i wanted proses input data to datatable will stoped! And showing with new value from datarow value into gridView

thanks

-------------------------------------- EDIT ----------------------------------

example :

upload file excel :

col1 ---- col2 ---- col3 ---- col4

tes1 ---- test1 ---- test1 ---- test1

tes2 ---- test2 ---- ---- test2

tes3 ---- test3 ---- test3 ---- test3

tes4 ---- test4 ---- ---- test4

and the result at gridview must like this :

col1 ---- col2 ---- col3 ---- col4

tes1 ---- test1 ---- test1 ---- test1

tes3 ---- test3 ---- test3 ---- test3

如果将Exit For更改为Exit Sub,则此时将停止处理

Try,

                Dim dtData As DataTable
                dtData = New DataTable
                dtData.Columns.Add("Row0")
                dtData.Columns.Add("Row1")
                dtData.Columns.Add("Row2")
                dtData.Columns.Add("Row3")

                Dim row As DataRow
                For Each row In dtExcelRecords.Rows
                    If Include.ConvertDbNullToEmpyString(row(2)) = "" Then
                        MsgBox("Error in saving!")
                        Exit For 'or exit Sub
                    End If
                    Dim dr As DataRow = dtData.NewRow

                    dr("Row0") = row(0)
                    dr("Row1") = row(1)
                    dr("Row2") = row(2)
                    dr("Row3") = row(3)

                    dtData.Rows.Add(dr) 'Add this line

                Next

                'Bind dtData to gridview
                'Save data in dtData to database

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM