Convert Data type

5
VB .NET 2005 By Warawut Khangkhan การแปลงชนดของข$อม&ลใน VB.NET 2005 express Edition การแปลงชนดของขอมลใน VB .NET 2005 Express Edition ในการเข1ยนโปรแกรมโดยท56วไป เราอาจต$องการแปลงข$อม&ลจากชนดหน<6งไปเป=นอ1กชนดหน<6ง เช>น ถ$าเราม1 TextBox 2 ต5ว ท16ท@าหน$าท16ในการร5บค>าจากแปCนพมพE แล$วเราน@า TextBox ท5Fง 2 มารวมก5น (+) จะท@าให$ผลล5พธEท16เราต$องการผดพลาดได$ เนM6องจากเครM6องหมายบวก (+) เป=นการรวมก5นระหว>าง TextBox ท5Fงสอง เพราะฉะน5Fนเราจ@าเป=นต$องท@าการแปลงชนดของ ข$อม&ลใน TextBox ท5Fง 2 เป=นชนดข$อม&ลต5วเลขก>อน ถ<งจะได$ผลล5พธEท16ถ&กต$อง ใน VB .NET สามารถแปลงชนดของข$อม&ลได$อย>างง>ายดาย เนM6องจากข$อม&ลทPกชนดใน VB .NET ถMอเป=น Object ประเภทหน<6ง ซ<6งม1เมธอด (Method) หรMอฟYงกEช56น (Function) ท16ใช$แปลงชนดข$อม&ลอย&>ภายในเร1ยบร$อยแล$ว ต5วอย>างเช>น ถ$าเราต$องการแปลงชนดข$อม&ลของต5วแปร A ซ<6งเป=นต5วแปรชนด Single ไปเป=นข$อม&ลชนด String และ เก^บผลล5พธEไว$ในต5วแปร B จะท@าได$ด5งน1 F Dim A As Single = 123.45 'ประกาศต5วแปร A ให$เป=นต5วแปรชนด Single Dim B As String 'ประกาศต5วแปร B ให$เป=นต5วแปรชนด String B = A.ToString 'แปลงข$อม&ลของต5วแปร A จากชนด Single ไปเป=น String และเก^บผลล5พธE ไว$ในต5วแปร B Method ท5Fงหมดท16ใช$แปลงชนดข$อม&ลจะอย&>ในคลาส System.Convert ซ<6งเราสามารถเร1ยกโดยใช$ร&ปแบบ รปแบบ <ชอตวแปร>.<ชอเมธอด> หรMอ System.Convert.<ชอเมธอด>(<ชอตวแปร>) จากต5วอย>าง B = A.ToString เราอาจเข1ยนอ1กร&ปแบบหน<6งได$ด5งน1 F System.Convert.ToString(A) ก^ได$เช>นก5น ตาราง สรPป Method ท16ส@าค5ญท16ใช$แปลงชนดของข$อม&ล Method Description Example Program Result ToString แปลงข$อม&ลชนดต5วเลข (numeric) หรMอ Date ให$เป=นต5วอ5กษร Dim varString As String Dim varDate As Date = Now( ) Dim varDouble As Double = 123.45 varString = varDate.ToString varString = varDouble.ToString 'varString = “11/12/2008 17:33” 'varString = “123.45” ToBool แปลงข$อม&ลชนดสตรงให$เป=น Boolean Dim varString As String = “True” Dim varBoolean As Boolean varBoolean = varString.ToBool 'varBoolean = True ToChar แปลงข$อม&ลชนดต5วเลขให$เป=น Char Dim varByte As Byte = 80 Dim varChar As Char varChar = Convert.ToChar(varByte) 'varChar = 'P' - 1 -

description

การแปลงชนิดของข้อมูลใน VB.NET 2005 Express Editor

Transcript of Convert Data type

Page 1: Convert Data type

VB .NET 2005 By Warawut Khangkhan การแปลงชน ดของข$อม&ลใน VB.NET 2005 express Edition

การแปลงชนดของข�อม�ลใน VB .NET 2005 Express Edition

ในการเข1ยนโปรแกรมโดยท56วไป เราอาจต$องการแปลงข$อม&ลจากชน ดหน<6งไปเป=นอ1กชน ดหน<6ง เช>น ถ$าเราม1 TextBox 2 ต5ว ท16ท@าหน$าท16ในการร5บค>าจากแปCนพ มพE แล$วเราน@า TextBox ท5Fง 2 มารวมก5น (+) จะท@าให$ผลล5พธEท16เราต$องการผ ดพลาดได$ เนM6องจากเครM6องหมายบวก (+) เป=นการรวมก5นระหว>าง TextBox ท5Fงสอง เพราะฉะน5Fนเราจ@าเป=นต$องท@าการแปลงชน ดของข$อม&ลใน TextBox ท5Fง 2 เป=นชน ดข$อม&ลต5วเลขก>อน ถ<งจะได$ผลล5พธEท16ถ&กต$อง

ใน VB .NET สามารถแปลงชน ดของข$อม&ลได$อย>างง>ายดาย เนM 6องจากข$อม&ลทPกชน ดใน VB .NET ถMอเป=น Object ประเภทหน<6ง ซ<6งม1เมธอด (Method) หรMอฟYงกEช56น (Function) ท16ใช$แปลงชน ดข$อม&ลอย&>ภายในเร1ยบร$อยแล$ว

ต5วอย>างเช>น ถ$าเราต$องการแปลงชน ดข$อม&ลของต5วแปร A ซ<6งเป=นต5วแปรชน ด Single ไปเป=นข$อม&ลชน ด String และเก^บผลล5พธEไว$ในต5วแปร B จะท@าได$ด5งน1F

Dim A As Single = 123.45 'ประกาศต5วแปร A ให$เป=นต5วแปรชน ด SingleDim B As String 'ประกาศต5วแปร B ให$เป=นต5วแปรชน ด StringB = A.ToString 'แปลงข$อม&ลของต5วแปร A จากชน ด Single ไปเป=น String และเก^บผลล5พธE

ไว$ในต5วแปร B

Method ท5Fงหมดท16ใช$แปลงชน ดข$อม&ลจะอย&>ในคลาส System.Convert ซ<6งเราสามารถเร1ยกโดยใช$ร&ปแบบร�ปแบบ

<ช��อต�วแปร>.<ช��อเมธอด>หรMอ

System.Convert.<ช��อเมธอด>(<ช��อต�วแปร>)

จากต5วอย>าง B = A.ToString เราอาจเข1ยนอ1กร&ปแบบหน<6งได$ด5งน1F System.Convert.ToString(A) กไ̂ด$เช>นก5น

ตาราง สรPป Method ท16ส@าค5ญท16ใช$แปลงชน ดของข$อม&ล

Method Description Example Program Result

ToString แปลงข$อม&ลชน ดต5วเลข (numeric) หรMอ Date ให$เป=นต5วอ5กษร

Dim varString As StringDim varDate As Date = Now( )Dim varDouble As Double = 123.45varString = varDate.ToStringvarString = varDouble.ToString

'varString = “11/12/2008 17:33”

'varString = “123.45”

ToBool แปลงข$อม&ลชน ดสตร งให$เป=น Boolean Dim varString As String = “True”Dim varBoolean As BooleanvarBoolean = varString.ToBool

'varBoolean = True

ToChar แปลงข$อม&ลชน ดต5วเลขให$เป=น Char Dim varByte As Byte = 80Dim varChar As CharvarChar = Convert.ToChar(varByte)

'varChar = 'P'

- 1 -

Page 2: Convert Data type

VB .NET 2005 By Warawut Khangkhan การแปลงชน ดของข$อม&ลใน VB.NET 2005 express Edition

ตาราง (ต5อ) สรPป Method ท16ส@าค5ญท16ใช$แปลงชน ดของข$อม&ล

Method Description Example Program Result

ToByte แปลงเป=นข$อม&ลชน ด Byte Dim varChar As Char = “P”Dim varByte As BytevarByte = Convert.ToByte(varChar)

'varByte = 80

ToDateTime แปลงเป=นข$อม&ลชน ด DateTime Dim varString As String = “01/02/2002”

Dim varDateTime As DateTimevarDateTime =

Convert.ToDateTime(varString)

'varDateTime = 01/02/2002

ToInt16 แปลงเป=นข$อม&ลอM6น ๆ ให$เป=น Short Dim varSring As String = “1234”Dim varShort As ShortvarShort =

Convert.ToInt16(varString)

'varShort = 1234

ToInt32 แปลงเป=นข$อม&ลอM6น ๆ ให$เป=น Integer Dim varInt As IntegerDim varLong As Long = 3500Dim varSingle As Single =

123.4567varInt = Convert.ToInt32(varLong)varInt = Convert.ToInt32(varSingle)

'varInt = 3500'varInt = 123

ToInt64 แปลงเป=นข$อม&ลอM6น ๆ ให$เป=น Long Dim varLong As LongDim varInt As Integer =

699999999Dim varSingle As Single = 123.456varLong = Convert.ToInt64(varInt)varLong = Convert.ToInt64(varSingle)

'varLong = 699999999'varLong = 123

ToSingle แปลงเป=นข$อม&ลอM6น ๆ ให$เป=น Single Dim varSingle As SingleDim varInt As Integer = 6999varSingle = Convert.ToSingle(varInt)

'varSingle = 6999

ToDouble แปลงเป=นข$อม&ลอM6น ๆ ให$เป=น Double Dim varDouble As DoubleDim varSingle =

“6999999999999.99”varDouble =

Convert.ToDouble(varSingle)

'varDouble = 6999999999999.99

- 2 -

Page 3: Convert Data type

VB .NET 2005 By Warawut Khangkhan การแปลงชน ดของข$อม&ลใน VB.NET 2005 express Edition

ต7วอย5าง การเข;ยนโปรแกรมในการแปลงชนดของข�อม�ล โดยไม5ใช� Method

ต5วอย>างท16จะใช$น1Fเป=นต5วอย>างท16เก16ยวก5บการค@านวณโดยการบวกเลข ซ<6งเป=นการร5บข$อม&ลจากแปCนพ มพEมา 2 ค>า โดย Control ท16ใช$ในการร5บค>าก^คMอ TextBox ซ<6งการค@านวณด$วยว ธ1การบวกและไม>ม1การแปลงชน ดของข$อม&ลแล$วจะท@าหน$าท16เป=นการรวมก5นระหว>างค>าท5 Fง 2 เช>น TextBox1 ร5บค>าเป=น 10 และ TextBox2 ร5บค>าเป=น 15 ผลล5พธEท16ได$จากการบวกก5นก^คMอ 1015

ตาราง ก@าหนด Properties ท16ส@าค5ญของแต>ละ ControlNo. Control Properties Value

1 Form Name Form1

Text การแปลงข$อม&ลโดยไม>ใช> Method

StartPosition CenterScreen

MaximizeBox False

MinimumBox False

2 TextBox Name txtNum1

TextAlign Center

3 TextBox Name txtNum2

TextAlign Center

4 TextBox Name txtResult

TextAlign Center

ReadOnly True

5 Button Name btnCalculatorAdd

Text ค@านวณบวก

- 3 -

234

5 6 7

Page 4: Convert Data type

VB .NET 2005 By Warawut Khangkhan การแปลงชน ดของข$อม&ลใน VB.NET 2005 express Edition

ตาราง (ต>อ) ก@าหนด Properties ท16ส@าค5ญของแต>ละ ControlNo. Control Properties Value

6 Button Name btnClear

Text เคล1ยรEค>า

7 Button Name btnExit

Text ออก

Coding:

Public Class Form1

Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click Application.Exit() End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtNum1.Text = "0" txtNum2.Text = "0" txtResult.Text = "0" End Sub

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click txtNum1.Text = "0" txtNum2.Text = "0" txtResult.Text = "0" End Sub

Private Sub btnCalculatorAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculatorAdd.Click txtResult.Text = txtNum1.Text + txtNum2.Text End Sub

Private Sub txtNum1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNum1.Enter txtNum1.SelectionStart = 0 txtNum1.SelectionLength = txtNum1.Text.Length End Sub

Private Sub txtNum2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNum2.Enter txtNum2.SelectionStart = 0 txtNum2.SelectionLength = txtNum2.Text.Length End Sub

- 4 -

Page 5: Convert Data type

VB .NET 2005 By Warawut Khangkhan การแปลงชน ดของข$อม&ลใน VB.NET 2005 express Edition

Private Sub txtNum1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtNum1.KeyDown If e.KeyCode = Keys.Enter Then txtNum2.Focus() End Sub

Private Sub txtNum2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtNum2.KeyDown If e.KeyCode = Keys.Enter Then btnCalculatorAdd.Focus() End SubEnd Class

Test Program:

ต7วอย5าง การเข;ยนโปรแกรมในการแปลงชนดของข�อม�ล โดยใช� Method

เราจะใช$ต5วอย>างเก16ยวก5บการค@านวณโดยการบวกเลข ซ<6งหน$าจอและการก@าหนดคPณสมบ5ต (Properties) จะม1ล5กษณะคล$ายด5งต5วอย>างข$างต$น เพ1ยงแต>ได$ท@าการแก$ไข Code เพ1ยงบางส>วนเท>าน5Fน

ท@าการแก$ไข Code ท16ปP{ม “ค@านวณบวก” จาก Code เด ม คMอtxtResult.Text = txtNum1.Text + txtNum2.Text

แก$ไขใหม>เป=นtxtResult.Text = Convert.ToInt32(txtNum1.Text) + Convert.ToInt32(txtNum2.Text)

เพ1ยงเท>าน1 F โปรแกรมของเราก^สมบ&รณEแล$ว ถ$าเราทดสอบอ1กคร5 Fงโดยก@าหนดให$ TextBox1 ร5บค>าเป=น 10 และ TextBox2 ร5บค>าเป=น 15 ผลล5พธEท16ได$จากการบวกก5นก^คMอ 25 ท5นท1

Test Program:

- 5 -