Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > upload ข้อมูลใน excel มาโชว์ใน datagrid ได้แล้ว แต่จะให้กด save แล้วลงฐานข้อมูลอย่างไรค่ะ



 

upload ข้อมูลใน excel มาโชว์ใน datagrid ได้แล้ว แต่จะให้กด save แล้วลงฐานข้อมูลอย่างไรค่ะ

 



Topic : 105428

Guest




ฟ

ใน datagrid เป็นการ อัพโหลด ให้ข้อมูลใน excel มาโชว์แล้ว

แต่ต่อไปจะให้ กด save แล้วให้ทั้งหมด insert ลง ฐานข้อมูล sql ที่หัวข้อตรงกับคอลัมในตารางที่สร้างไว้

อยากทราบว่าต้องเขียนโค้ดเพื่อกำหนดให้ แต่ละคอลัม แถว ลงไปให้ตรงกับใน ฐานข้อมูลอย่างไร

ขอแนวทางหน่อยค่ะ ลองหาแล้วยังไม่ได้ ขอบคุณค่ะ



Tag : .NET, Ms SQL Server 2008, VBScript, Web (ASP.NET)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-02-04 10:40:13 By : NJ View : 885 Reply : 7
 

 

No. 1



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอดูโค้ดที่ Load มาใส่ใน Datagrid ได้ไหมครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-04 17:30:25 By : 01000010
 


 

No. 2

Guest


นี่ค่ะโค้ด ช่วยแนะนำด้วยนะค่ะ ติดมาหลายวันแล้ว โดนเร่งด้วย

ตอบความคิดเห็นที่ : 1 เขียนโดย : 01000010 เมื่อวันที่ 2014-02-04 17:30:25
รายละเอียดของการตอบ ::
Code (VB.NET)
 Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpload.Click
        If FileUpload1.HasFile Then
            Dim FileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
            Dim Extension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)
            Dim FolderPath As String = ConfigurationManager.AppSettings("FolderPath")

            Dim FilePath As String = Server.MapPath(FolderPath + FileName)
            FileUpload1.SaveAs(FilePath)
            Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text)
        End If
    End Sub

    Private Sub Import_To_Grid(ByVal FilePath As String, ByVal Extension As String, ByVal isHDR As String)
        Dim conStr As String = ""
        Select Case Extension
            Case ".xls"
                'Excel 97-03
                conStr = ConfigurationManager.ConnectionStrings("Excel03ConString") _
                           .ConnectionString
                Exit Select
            Case ".xlsx"
                'Excel 07
                conStr = ConfigurationManager.ConnectionStrings("Excel07ConString") _
                          .ConnectionString
                Exit Select
        End Select
        conStr = String.Format(conStr, FilePath, isHDR)

        Dim connExcel As New OleDbConnection(conStr)
        Dim cmdExcel As New OleDbCommand()
        Dim oda As New OleDbDataAdapter()
        Dim dt As New DataTable()

        cmdExcel.Connection = connExcel

        'Get the name of First Sheet
        connExcel.Open()
        Dim dtExcelSchema As DataTable
        dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
        Dim SheetName As String = dtExcelSchema.Rows(0)("TABLE_NAME").ToString()
        connExcel.Close()

        'Read Data from First Sheet
        connExcel.Open()
        cmdExcel.CommandText = "SELECT * From [" & SheetName & "]"
        oda.SelectCommand = cmdExcel
        oda.Fill(dt)
        connExcel.Close()

        'Bind Data to GridView
        GridView1.Caption = Path.GetFileName(FilePath)
        GridView1.DataSource = dt
        GridView1.DataBind()
    End Sub
    Protected Sub PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
        Dim FolderPath As String = ConfigurationManager.AppSettings("FolderPath")
        Dim FileName As String = GridView1.Caption
        Dim Extension As String = Path.GetExtension(FileName)
        Dim FilePath As String = Server.MapPath(FolderPath + FileName)

        Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text)
        GridView1.PageIndex = e.NewPageIndex
        GridView1.DataBind()
End Sub


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-05 08:05:56 By : NJ
 

 

No. 3

Guest


Code (VBScript)
 Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpload.Click
        If FileUpload1.HasFile Then
            Dim FileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
            Dim Extension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)
            Dim FolderPath As String = ConfigurationManager.AppSettings("FolderPath")

            Dim FilePath As String = Server.MapPath(FolderPath + FileName)
            FileUpload1.SaveAs(FilePath)
            Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text)
        End If
    End Sub

    Private Sub Import_To_Grid(ByVal FilePath As String, ByVal Extension As String, ByVal isHDR As String)
        Dim conStr As String = ""
        Select Case Extension
            Case ".xls"
                'Excel 97-03
                conStr = ConfigurationManager.ConnectionStrings("Excel03ConString") _
                           .ConnectionString
                Exit Select
            Case ".xlsx"
                'Excel 07
                conStr = ConfigurationManager.ConnectionStrings("Excel07ConString") _
                          .ConnectionString
                Exit Select
        End Select
        conStr = String.Format(conStr, FilePath, isHDR)

        Dim connExcel As New OleDbConnection(conStr)
        Dim cmdExcel As New OleDbCommand()
        Dim oda As New OleDbDataAdapter()
        Dim dt As New DataTable()

        cmdExcel.Connection = connExcel

        'Get the name of First Sheet
        connExcel.Open()
        Dim dtExcelSchema As DataTable
        dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
        Dim SheetName As String = dtExcelSchema.Rows(0)("TABLE_NAME").ToString()
        connExcel.Close()

        'Read Data from First Sheet
        connExcel.Open()
        cmdExcel.CommandText = "SELECT * From [" & SheetName & "]"
        oda.SelectCommand = cmdExcel
        oda.Fill(dt)
        connExcel.Close()

        'Bind Data to GridView
        GridView1.Caption = Path.GetFileName(FilePath)
        GridView1.DataSource = dt
        GridView1.DataBind()
    End Sub
    Protected Sub PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
        Dim FolderPath As String = ConfigurationManager.AppSettings("FolderPath")
        Dim FileName As String = GridView1.Caption
        Dim Extension As String = Path.GetExtension(FileName)
        Dim FilePath As String = Server.MapPath(FolderPath + FileName)

        Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text)
        GridView1.PageIndex = e.NewPageIndex
        GridView1.DataBind()
    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-05 08:10:44 By : NJ
 


 

No. 4



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ได้ข้อมูลมาอยู่ใน DataTable แล้วต่อไปก็แค่หาวิธี Insert ข้อมูลลงฐานข้อมูล

โดยวนทุกแถวในตารางและเช็คว่าแถวไหนคือแถว Added เช็คจาก RowState

เมื่อเจอแถวที่เพิ่มเข้าไปใหม่ให้ส่งแถวนั้นไปทำคำสั่ง Insert ปกติ

จนครบทุกแถวแค่นั้นครับ

ลิ้งการ Insert (ในลิ้งไม่มีวนใน DataTable เราต้องประยุกต์เอง) Ref. https://www.thaicreate.com/asp.net/c-sharp-asp.net-sql-server-add-insert-record.html


อันนี้สดหน่อย ส่ง DataTable ให้ Store Procedure ยัดเข้าไป ทั้ง Table เลย Ref. http://stackoverflow.com/questions/9075159/how-to-insert-a-data-table-into-sql-server-database-table



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-05 09:04:45 By : 01000010
 


 

No. 5

Guest


ตอบความคิดเห็นที่ : 4 เขียนโดย : 01000010 เมื่อวันที่ 2014-02-05 09:04:45
รายละเอียดของการตอบ ::
ขอบคุณค่ะ ลองทำก่อนนะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-05 09:31:06 By : NJ
 


 

No. 6

Guest


ถามอีกหน่อยค่ะ ยังงงๆอยู่เลย
ภ้าทำประมาณนี้จะได้ไหม ถ้าจะทำ FindControl ตอนนี้ใน .aspx
มีโค้ดแค่นี้ <asp:GridView ID="GridView1" runat="server" Width="395px">

</asp:GridView>

หรือถ้าทำแบบนี้ เอามาแปลงแบบมั่วๆ แต่ติดGridView1.Rows(i).Cells(0).Value มันไม่ผ่าน
ไม่ทราบว่าที่ทำนี่ถูกทางไหมค่ะ
Code (VBScript)
Private Sub insert()
        Dim idhole As String = ""
        Dim sum As Double = 0
        Dim Sqlcrs As String = ""
        Dim crsState As String = ""
        Dim sqlAddCrs As String = ""
        Dim sqlAddDtl As String = ""
        Dim cmd As New SqlCommand
        Dim dsChk As New DataSet
        Dim addChk As Boolean = True

        For i = 0 To GridView1.Rows.Count - 1

            sqlAddCrs = "INSERT INTO Table1 VALUES ('" + GridView1.Rows(i).Cells(0).Value + "',' " + GridView1.Rows(i).Cells(1).Value + "', '" + GridView1.Rows(i).Cells(2).Value + "')"
            Label2.Text = (sqlAddCrs)
            Try
                With cmd
                    .CommandType = CommandType.Text
                    .CommandText = sqlAddCrs
                    .Connection = conn
                    .ExecuteNonQuery()
                End With

            Catch ex As Exception
                ' Label6.Text = ex.Message

                Exit Sub
            End Try
        Next
    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-05 11:21:19 By : NJ
 


 

No. 7



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

สำหรับหลักการทำงาน ก็คือประมาณนี้ วนลูปแล้ว Insert

แต่ในแบบของผมจะจัดการกับ DataTable ที่ Bind อยู่กับ Datagrid

เพราะเวลาที่ผมจัดการกับตารางไม่ว่าจะเพิ่มค่า แก้ไขค่า ลบค่าในแถว

ก็จะมีการเซ็ต RowState ตลอด ตอนที่ผมจะไปเซฟ ผมจะส่ง DataTable

ไปวนในแต่ละแถวแล้วเช็ค Case ต่าง ๆ ถ้าเป็นเพิ่ม ก็ส่งให้ เมธอด Insert

ถ้าแก้ไข ก็ส่งให้ Update ถ้าลบแถวก็ส่งให้ Delete ประมาณนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-05 13:19:11 By : 01000010
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : upload ข้อมูลใน excel มาโชว์ใน datagrid ได้แล้ว แต่จะให้กด save แล้วลงฐานข้อมูลอย่างไรค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่