简体   繁体   English

如何在devexpress弹出控件中将xls文件的数据上传到SQL Server?

[英]How to upload xls file's data to SQL Server in devexpress popup control?

I have enquiry on how to insert xls file data into SQL Server. 我询问如何将xls文件数据插入SQL Server。 The upload button, and gridview control are placed inside the devexpress popup control and the code works without the popup control but doesn't work with popup control. 上传按钮和gridview控件放置在devexpress弹出控件内,并且该代码在没有弹出控件的情况下可以工作,但在弹出控件中不起作用。 When I inserted the xls file and clicked the upload button, the label display showed "Please select a file to upload!" 当我插入xls文件并单击上载按钮时,标签显示将显示“请选择要上载的文件!” although I have did this. 尽管我已经做到了。

ASP.NET markup: ASP.NET标记:

<dx:ASPxPopupControl ID="popupControl" ClientInstanceName="popupControl" 
    AllowDragging="true" ShowOnPageLoad="false" runat="server" AllowResize="true" >
    <ContentCollection>
        <dx:PopupControlContentControl runat="server">                             
            <div class="flexs">
                <dx:ASPxUploadControl ID="XXUpload" runat="server" UploadMode="Auto" ValidationSettings-AllowedFileExtensions=".xls" width="500px" >
                </dx:ASPxUploadControl>
                <dx:ASPxLabel ID="Label2" runat="server" Text=""></dx:ASPxLabel>
                <dx:ASPxButton ID="DataUpload" runat="server" Text="UPLOAD" OnClick="DataUpload_Click ">
                </dx:ASPxButton>                                                       
                <dx:ASPxGridView ID="UpdateSplitGrid" ClientIDMode="Static" ClientInstanceName="UpdateSplitGrid" runat="server" Width="200%" DataSourceID="dtSource2" Theme="DevEx" >
                .....
                </dx:ASPxGridView>
           </div>
        </dx:PopupControlContentControl>
    </ContentCollection>
</dx:ASPxPopupControl>

Vb.net code: Vb.net代码:

Function uploadExcel1(filePath As String) As String
        Dim str As String = ""
        Dim namestr1 As String = XXUpload.UploadedFiles.ToArray(0).FileName.ToString
        If namestr1 <> "" Then
            If Not XXUpload.UploadedFiles.ToArray(0).IsValid Then
                str = "Fail to Upload " + namestr1

            Else
                XXUpload.UploadedFiles.ToArray(0).SaveAs(filePath)
                str = " Successfully Uploaded!"

            End If

        Else
            str = "Please select a File to upload!"

        End If

        Return str

    End Function

 Function getDTe(filename As String, ByVal sql As String) As DataTable

        Dim dt As New DataTable()
        Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';"

        Dim connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter(sql, connection)
        adapter.Fill(dt)
        Return dt

    End Function

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

        Dim filepath As String = "C:\New folder\" + XXUpload.UploadedFiles.ToArray(0).FileName.ToString + ".xls"

        Dim msg As String = uploadExcel1(filepath)
        Label2.Text = msg

        If msg.Contains("Successfully") Then


            Dim sql As String = "select * from [Sheet1$]"
            Dim dt As New DataTable
            dt = getDTe(filepath, sql)

            If dt.Rows.Count > 0 Then

                Dim i As Integer = 0
                Dim colname() As String = {"LotID", "Split_Cat", "Engr_Time", "PLANDESC", "STEPSEQ", "EQPTYPE", "PPID", "STEPDESC", "Split", "Recipe", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22"}

                For Each dc As DataColumn In dt.Columns
                    If dc.ColumnName.ToString <> colname(i) Then
                        Label2.Text = "  File is not in correct format - Details: " + dc.ColumnName.ToString
                        Return
                    End If
                    i = i + 1

                Next


                For Each dr In dt.Rows

                    Try

                        Dim LotID As String = dr("LotID").ToString
                        Dim Split_Cat As String = dr("Split_Cat").ToString
                        Dim Engr_Time As String = dr("Engr_Time").ToString
                        Dim PLANDESC As String = dr("PLANDESC").ToString
                        Dim STEPSEQ As String = dr("STEPSEQ").ToString
                        Dim EQPTYPE As String = dr("EQPTYPE").ToString
                        Dim PPID As String = dr("PPID").ToString
                        Dim STEPDESC As String = dr("STEPDESC").ToString
                        Dim Split As String = dr("Split").ToString
                        Dim Recipe As String = dr("Recipe").ToString
                        Dim a As String = dr("F11").ToString
                        Dim b As String = dr("F12").ToString
                        Dim c As String = dr("F13").ToString
                        .............

                        Dim insertsql2 As String = ""
                        insertsql2 += "insert into PTHOME.dbo.SplitTable (LotID,Split_Cat,Engr_Time,PLANDESC,STEPSEQ,EQPTYPE,PPID,STEPDESC,Split,Recipe,[1],[2],[3]) values "
                        insertsql2 += "('" + LotID + "','" + Split_Cat + "','" + Engr_Time + "','" + PLANDESC + "','" + STEPSEQ + "','" + EQPTYPE + "','" + PPID + "','" + STEPDESC + "','" + Split + "','" + Recipe + "', "
                        insertsql2 += " '" + a + "','" + b + "','" + c + "') "


                        Dim conn As New SqlConnection(connString)
                        Dim cmd As New SqlCommand(insertsql2, conn)
                        conn.Open()
                        Dim res As Integer = cmd.ExecuteNonQuery
                        conn.Close()

                        If res > 0 Then
                            Label2.Text = res.ToString + " Records Successfully Uploaded! "

                            UpdateSplitGrid.DataBind()

                        Else
                            Label2.Text = " NO Records Uploaded! "
                        End If



                    Catch ex As Exception

                        Label2.Text = " Failed to Upload, pls check your data or file format ! "

                    End Try

                Next

            End If


        End If

    End Sub

When i upload the xls file, the label displayed "Please select a File to upload!", anything i missed out in the popup control? 当我上传xls文件时,标签上显示“请选择要上传的文件!”,我在弹出控件中错过了什么吗? Please guide me on this, thanks in advance. 请对此进行指导,在此先感谢。

EDIT* 编辑*

I have changed the upload control to this and it no longer showed the "Please select a File to upload!" 我已将上传控件更改为此,并且不再显示“请选择要上传的文件!” now there is another error showed "File is not in correct format - Details: F11" , the error seems to lie on the column [1]-[12], but the excel column is 1-12 and the column in database is [1]-[12].how can i achieve this? 现在出现另一个错误,显示"File is not in correct format - Details: F11" ,错误似乎出在[1]-[12]列上,但是excel列是1-12,数据库中的列是[ 1]-[12]。如何实现? ( Solved by changing the number to F11 and so on.) (通过将数字更改为F11等来解决。)

 <dx:ASPxUploadControl runat="server" ClientInstanceName="XXUpload" ID="XXUpload" Width="600px" >
    <ValidationSettings AllowedFileExtensions=".xls"></ValidationSettings>
     </dx:ASPxUploadControl> 

Edit 2* The data has uploaded successfully to sql server and now another problem occurred, the data uploaded to sql server wont show in the UpdateSplitGrid gridview although i have declared this in my code. 编辑2 *数据已成功上传到sql服务器,现在又出现了另一个问题,尽管我已在代码中声明了此信息,但上传到sql服务器的数据不会显示在UpdateSplitGrid网格视图中。

If res > 0 Then
Label2.Text = res.ToString + " Records Successfully Uploaded! "
UpdateSplitGrid.DataBind()

Your ASPxUploadControl , the XXUpload , doesn't have any function to execute when upload is complete. 上传完成后,您的ASPxUploadControl XXUpload没有任何功能要执行。 I suggest you use OnFileUploadComplete event with FileUploadMode="OnPageLoad" . 我建议您将OnFileUploadComplete事件与FileUploadMode="OnPageLoad"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将xls文件上传到Web服务器 - upload xls file to web server 如何以编程方式(C#)从Xls-XML(以XML格式保存的xls文件)数据导入SQL Server - How to programmatically (C#) import from the Xls-XML(xls file Saved in XML Format) data in to SQL Server 在没有文件上传控制的情况下将图像上传到服务器 - Upload image to the server without file upload control 在MVC4中,如何将文件(图像)上传到属于我的域模型的SQL Server? - In MVC4, how do I upload a file (an image) to SQL Server that's part of my domain model? Devexpress报表:如何控制参数字段的宽度? - Devexpress Reporting: How to Control Parameter Field's Width? 如何将Devexpress Skin应用于devexpress文本框控件? - How to apply Devexpress Skin to devexpress textbox control? DevExpress DashboardLoading从MS SQL Server获取数据 - DevExpress DashboardLoading get data from MS SQL Server 如何将数据绑定到嵌套的DevExpress GridView控件? - How do I Bind data to a nested DevExpress GridView control? 使用文件上传将Excel数据传输到SQL Server表中 - Transfer Excel data into a SQL Server table using file upload 在C#中从数据中删除特殊字符后如何将数百万行数据从dbf文件上传到SQL Server - How to upload millions of rows of data from dbf file to SQL Server after removing special characters from the data in C#
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM