vb.net excel database ด้วย OleDb

31 Jul 2017

Share to:

ในบทความนี้จะมาพูดถึงเรื่องการทํางานกับ file Excel ด้วย VB.NET โดยจะสามารถเข้าถึงข้อมูล แก้ไขข้อมูล และเพิ่มข้อมูล ด้วยคําสั่ง SQL เหมือนกับเป็น Database ตัวนึง ซึ่งการใช้งานจะต้องใช้ libraries ที่ชื่อว่า OleDb ใน Virtual Studio จะมีให้อยู่แล้ว

วิธีการใช้งานจะแบ่งเป็นสองแบบดังนี้

  1. การใช้งานโดยไม่ต้องการผลลัพธ์ของข้อมูลเช่น insert, update, delete
  2. การใช้งานโดยต้องการผลลัพธ์ของข้อมูลเช่น Query ข้อมูลจาก Excel(คําสั่ง Select)

ตัวอย่างการใช้งานในแบบที่1

Try
    Dim filePath = "test.xls" 'ชื่อของ File Excel ที่ต้องการ
    Dim conStr= String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;""", filePath)
    Dim cn As New System.Data.OleDb.OleDbConnection()
    Dim cm As New System.Data.OleDb.OleDbCommand()

    cn.ConnectionString = conStr
    cn.Open()

    With cm
        .Connection = cn
        'insert ข้อมูลลง Sheet1 2 column
        .CommandText = "INSERT INTO [Sheet1$] values ('111', 'ABC')"
        .ExecuteNonQuery() 'ทําการ Execute หรือ รัน SQL Command
    End With

    cn.Close() 'ปิดการเชื่อมต่อกับ File Excel
Catch ex As Exception
    errmsg = ex.Message
End Try

output: ในไฟล์ test.xls จะถูกเพิ่มข้อมูลลงใปใน “Sheet1” 1 row

ตัวอย่างการใช้งานในแบบที่2

Try
    Dim filePath = "test.xls" 'ชื่อของ File Excel ที่ต้องการ
    Dim conStr= String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;""", filePath)
    Dim MyConnection As System.Data.OleDb.OleDbConnection
    Dim DtSet As System.Data.DataSet
    Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
    Dim cmd = ""
    Dim dt As New DataTable() 'สร้างตัวแปรสําหรับเก็บข้อมูลที่ Query ออกมา

    MyConnection = New System.Data.OleDb.OleDbConnection(conStr)
    cmd = "SELECT * FROM [Sheet1$]" 'SQL Command ที่ต้องการ
    MyCommand = New System.Data.OleDb.OleDbDataAdapter(cmd, MyConnection)
    DtSet = New System.Data.DataSet
    MyCommand.Fill(DtSet)
    dt = DtSet.Tables(0) 'นําข้อมุลที่ Query ออกมาได้ เก็บในตัวแปรโดยจะเป็นข้อมุลชนิด dataTable
    MyConnection.Close()
Catch ex As Exception
    errmsg = ex.Message
End Try

output: จะได้ข้อมูลจากไฟล์ test.xls ใน Sheet1 โดยข้อมูลจะอยู่ในตัวแปร dt เป็น dataTable สามารถทําข้อมูลไปใช้ได้ตามต้องการ

Suggestion blogs

Singleton pattern

Singleton pattern เป็น Design pattern ที่ใช้จํากัดจํานวนของอ็อบเจกต์ที่ถูกสร้างในขณะที่โปรแกรมทํางาน จะมีประโยชน์ในกรณีที่ระบบงานต้องการบังคับให้มีแค่อ็อบเจกต์เดียวเพื่อไม่ให้เกิดการซํ้าซ้อนกันเช่น Class ที่ใช้ในการควบคุม Hardware 1 ตัว ในการควบคุม Hardware 1 ตัวถ้าสร้างอ็อบเจกต์เพื่อควบคุมขึ้นมาหลายตัวอาจจะทําให้เกิดปัญหาในการควบคุม Hardware ได้

Tag and push image to docker registry

สวัสดีครับ ในบทความนี้อธิบายถึงวิธีการ Tag และ push Image ที่เราสร้างขึ้นไปใว้ใน Docker Registry (hub.docker.com) ก่อนที่จะเริ่มเข้าเรื่อง ถ้าอ่านมาถึงตอนนี้แล้วยัง งงๆ ให้กลับไปอ่านเรื่อง สร้าง Docker Image ก่อนครับเพราะเนื่อหาในบทความนี้จะต่อเนื่องกันครับ ก่อน push image ของเราขึ้น Docker Registry ให้เราไปสมัคร account ของ hub.docker.com เมื่อเรียบร้อยผมจะอธิบายโดยแบ่งเป็นสองขั้นตอนดังนี้

Creative Commons (CC)

สัญญาอนุญาตครีเอทีฟคอมมอนส์ Creative Commons(CC)เป็นสัญญาอนุญาตที่ช่วยให้เจ้าของผลงาน หรือเจ้าของลิขสิทธิ์ สามารถให้สิทธิบางส่วนหรือทั้งหมดแก่สาธารณะ แต่ยังคงสงวนสิทธิอื่นๆไว้ โดยการแสดงสัญญาอนุญาตที่ผลงานของตนเอง เพื่อหลีกเลี่ยงการเกิดปัญหาลิขสิทธิ์ต่อการแบ่งปันสารสนเทศ


Copyright © 2019 - 2024 thiti.dev |  v1.39.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ