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,037

HOME > .NET Framework > Forum > รบกวนช่วยแก้ปัญหาให้หน่อยครับ เพิ่มข้อมูลไม่ได้ vb.net



 

รบกวนช่วยแก้ปัญหาให้หน่อยครับ เพิ่มข้อมูลไม่ได้ vb.net

 



Topic : 122775



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



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




ต้องการเพิ่มข้อมูลลงในตาราง tbStudent โดยให้ combobox แสดงชื่อสาขา แต่ให้เพิ่ม id สาขาวิชาลงในตาราง tbStudent ยังไงครับ

pic1



Tag : .NET, Ms SQL Server 2008, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-05-05 18:24:21 By : magma000 View : 1110 Reply : 11
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ขอดู Code หน่อยครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-06 10:01:39 By : mr.win
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2016-05-06 10:01:39
รายละเอียดของการตอบ ::
Code (VB.NET)
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration

Public Class frmAssign12
    Dim sqlConn As SqlConnection
    Dim sqlDa As SqlDataAdapter
    Dim sqlCom As SqlCommand
    Dim sqlDr As SqlDataReader
    Dim daSet As DataSet
    Dim sqlTs As SqlTransaction
    Dim strCon As String = ConfigurationManager.ConnectionStrings("VisualProgQ1.My.MySettings.daStudent").ConnectionString
    Dim strSql As String
    Dim actStatus As String

    Private Sub frmAssign12_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        sqlConn = New SqlConnection
        sqlConn.ConnectionString = strCon
        sqlConn.Open()

        strSql = "select stdId, stdName, stdLname, address, sex, gpa, tbDepartment.departName from tbStudent, tbDepartment where tbStudent.departID=tbDepartment.departID"

        sqlDa = New SqlDataAdapter(strSql, strCon)
        daSet = New DataSet
        daSet.Clear()
        sqlDa.Fill(daSet, "Show")
        dgvStudent.DataSource = daSet.Tables("Show")
    End Sub

    Private Sub dgvStudent_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvStudent.CellEnter
        Dim Row As Integer
        Row = dgvStudent.CurrentCell.RowIndex
        txtStdId.Text = dgvStudent.Item(0, Row).Value
        txtStdName.Text = dgvStudent.Item(1, Row).Value
        txtStdLname.Text = dgvStudent.Item(2, Row).Value
        txtAddress.Text = dgvStudent.Item(3, Row).Value
        If dgvStudent.Item(4, Row).Value = "ชาย" Then
            radMale.Checked = True
        Else
            radFemale.Checked = True
        End If
        txtGpa.Text = dgvStudent.Item(5, Row).Value
        cboDepartName.SelectedIndex = cboDepartName.Items.Add(dgvStudent.Item(6, Row).Value)
    End Sub

    Private Sub showDep()
        If sqlConn.State = ConnectionState.Closed Then
            sqlConn.Open()
        End If

        strSql = "Select departName from tbDepartment"

        sqlCom = New SqlCommand(strSql, sqlConn)
        sqlDr = sqlCom.ExecuteReader
        If sqlDr.HasRows Then
            While sqlDr.Read
                cboDepartName.Items.Add(sqlDr(0))
            End While
            cboDepartName.SelectedIndex = cboDepartName.Items.Count = 0
            sqlDr.Close()
        End If
    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        actStatus = "insert"
        dgvStudent.Enabled = False
        panStudent.Enabled = True
        btnAdd.Enabled = False
        btnEdit.Enabled = False
        btnDel.Enabled = False
        btnSave.Enabled = True
        btnCance.Enabled = True
        txtStdId.Clear()
        txtStdName.Clear()
        txtStdLname.Clear()
        txtAddress.Clear()
        txtGpa.Clear()
        radMale.Checked = True
        txtStdId.Focus()
        cboDepartName.Items.Clear()

        If sqlConn.State = ConnectionState.Closed Then
            sqlConn.Open()
        End If

        strSql = "Select departName from tbDepartment"

        sqlCom = New SqlCommand(strSql, sqlConn)
        sqlDr = sqlCom.ExecuteReader
        If sqlDr.HasRows Then
            While sqlDr.Read
                cboDepartName.Items.Add(sqlDr(0))
            End While
            cboDepartName.SelectedIndex = cboDepartName.Items.Count = 0
            sqlDr.Close()
        End If
    End Sub

    Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
        actStatus = "edit"
        dgvStudent.Enabled = False
        panStudent.Enabled = True
        btnAdd.Enabled = False
        btnEdit.Enabled = False
        btnDel.Enabled = False
        btnSave.Enabled = True
        btnCance.Enabled = True
        cboDepartName.Items.Clear()


    End Sub

    Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
        
    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        Dim sex As String
        Dim intResult As Integer
        If radMale.Checked = True Then
            sex = "ชาย"
        Else
            sex = "หญิง"
        End If
        If actStatus = "insert" Then
            strSql = "insert into tbStudent values('" & txtStdId.Text & "','" & txtStdName.Text & "','" & txtStdLname.Text & "','" & txtAddress.Text & "','" & sex & "','" & txtGpa.Text & "','" & cboDepartName.Text & "')"
        End If
        sqlCom = New SqlCommand
        sqlCom.CommandType = CommandType.Text
        sqlCom.CommandTimeout = 15
        sqlCom.CommandText = strSql
        sqlCom.Connection = sqlConn
        sqlTs = sqlConn.BeginTransaction
        sqlCom.Transaction = sqlTs
        Try
            intResult = sqlCom.ExecuteNonQuery
            MessageBox.Show("บันทึกข้อมูลเรียบร้อย...")
            sqlTs.Commit()
            Call frmAssign12_Load(sender, e)
        Catch
            MessageBox.Show("เกิดข้อผิดพลาด ไม่สามารถบันทึกได้...")
            sqlTs.Rollback()
        End Try
        Call btnCance_Click(sender, e)
    End Sub

    Private Sub btnCance_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCance.Click
        dgvStudent.Enabled = True
        panStudent.Enabled = False
        btnAdd.Enabled = True
        btnEdit.Enabled = True
        btnDel.Enabled = True
        btnSave.Enabled = False
        btnCance.Enabled = False
        cboDepartName.Items.Clear()
        Call frmAssign12_Load(sender, e)
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Me.Close()
    End Sub
End Class




ประวัติการแก้ไข
2016-05-06 10:16:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-06 10:12:39 By : magma000
 

 

No. 3



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ลองใช้ BindingSource ดูไม๊ครับจะมี ValueMember อยู่เรียกใช้ได้ครับ

https://www.thaicreate.com/community/c-sharp-bindingsource-and-combobox-ban-ban.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-06 10:26:48 By : lamaka.tor
 


 

No. 4



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



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


เอาโค้ดใครมาครับ ?

Code (VB.NET)
cboDepartName.Text  --> cboDepartName.SelectedValue

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-06 10:29:32 By : deksoke
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 4 เขียนโดย : deksoke เมื่อวันที่ 2016-05-06 10:29:32
รายละเอียดของการตอบ ::
ตรวจสอบละเอียดมากครับ(แสดงว่าใส่ใจกันจริง)



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-06 11:01:18 By : lamaka.tor
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : deksoke เมื่อวันที่ 2016-05-06 10:29:32
รายละเอียดของการตอบ ::
ลองแล้วครับ...มันก็เหมือนเดิมบันทึกไม่ได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-06 12:51:02 By : magma000
 


 

No. 7



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ตอบความคิดเห็นที่ : 6 เขียนโดย : magma000 เมื่อวันที่ 2016-05-06 12:51:02
รายละเอียดของการตอบ ::

มัน มี Error มั้ยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-11 15:23:27 By : weerachai.va
 


 

No. 8



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



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


ถ้ามีวิธีที่ดีกว่าก็ไม่ต้องสนวิธีผมก็ได้นะครับ
เพิ่ม
Dim _id As String

ลงไปด้านล่าง
Dim actStatus As String


เพิ่ม

Private Sub cboDepartName_TextChanged(ByVal sender As System.Object, Byval e As System.EventArgs) Handles cboDepartName.TextChanged
sqlConn = New SqlConnection
sqlConn.ConnectionString = strCon
sqlConn.Open()

strSql = "select departID From tbDepartment WHERE departName = @departName"
sqlCom = New SqlCommand
sqlCom.CommandType = CommandType.Text
sqlCom.CommandTimeout = 15
sqlCom.CommandText = strSql
sqlCom.Connection = sqlConn
sqlCom.Parameter.Addwithvalue("@departName", cboDepartName.text)
Dim sqldataReader = new SQLdatareader()
sqldataReader = sqlCom.executereader()
sqldatareader.read()
if sqldatareader.hasrow then
_id = sqldatareader("departID ")
end if


End Sub

ลงไปด้านล่างก่อน end class

Code (VB.NET)
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration

Public Class frmAssign12
    Dim sqlConn As SqlConnection
    Dim sqlDa As SqlDataAdapter
    Dim sqlCom As SqlCommand
    Dim sqlDr As SqlDataReader
    Dim daSet As DataSet
    Dim sqlTs As SqlTransaction
    Dim strCon As String = ConfigurationManager.ConnectionStrings("VisualProgQ1.My.MySettings.daStudent").ConnectionString
    Dim strSql As String
    Dim actStatus As String

Dim _id As String

    Private Sub frmAssign12_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        sqlConn = New SqlConnection
        sqlConn.ConnectionString = strCon
        sqlConn.Open()

        strSql = "select stdId, stdName, stdLname, address, sex, gpa, tbDepartment.departName from tbStudent, tbDepartment where tbStudent.departID=tbDepartment.departID"

        sqlDa = New SqlDataAdapter(strSql, strCon)
        daSet = New DataSet
        daSet.Clear()
        sqlDa.Fill(daSet, "Show")
        dgvStudent.DataSource = daSet.Tables("Show")
    End Sub

    Private Sub dgvStudent_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvStudent.CellEnter
        Dim Row As Integer
        Row = dgvStudent.CurrentCell.RowIndex
        txtStdId.Text = dgvStudent.Item(0, Row).Value
        txtStdName.Text = dgvStudent.Item(1, Row).Value
        txtStdLname.Text = dgvStudent.Item(2, Row).Value
        txtAddress.Text = dgvStudent.Item(3, Row).Value
        If dgvStudent.Item(4, Row).Value = "ชาย" Then
            radMale.Checked = True
        Else
            radFemale.Checked = True
        End If
        txtGpa.Text = dgvStudent.Item(5, Row).Value
        cboDepartName.SelectedIndex = cboDepartName.Items.Add(dgvStudent.Item(6, Row).Value)
    End Sub

    Private Sub showDep()
        If sqlConn.State = ConnectionState.Closed Then
            sqlConn.Open()
        End If

        strSql = "Select departName from tbDepartment"

        sqlCom = New SqlCommand(strSql, sqlConn)
        sqlDr = sqlCom.ExecuteReader
        If sqlDr.HasRows Then
            While sqlDr.Read
                cboDepartName.Items.Add(sqlDr(0))
            End While
            cboDepartName.SelectedIndex = cboDepartName.Items.Count = 0
            sqlDr.Close()
        End If
    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        actStatus = "insert"
        dgvStudent.Enabled = False
        panStudent.Enabled = True
        btnAdd.Enabled = False
        btnEdit.Enabled = False
        btnDel.Enabled = False
        btnSave.Enabled = True
        btnCance.Enabled = True
        txtStdId.Clear()
        txtStdName.Clear()
        txtStdLname.Clear()
        txtAddress.Clear()
        txtGpa.Clear()
        radMale.Checked = True
        txtStdId.Focus()
        cboDepartName.Items.Clear()

        If sqlConn.State = ConnectionState.Closed Then
            sqlConn.Open()
        End If

        strSql = "Select departName from tbDepartment"

        sqlCom = New SqlCommand(strSql, sqlConn)
        sqlDr = sqlCom.ExecuteReader
        If sqlDr.HasRows Then
            While sqlDr.Read
                cboDepartName.Items.Add(sqlDr(0))
            End While
            cboDepartName.SelectedIndex = cboDepartName.Items.Count = 0
            sqlDr.Close()
        End If
    End Sub

    Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
        actStatus = "edit"
        dgvStudent.Enabled = False
        panStudent.Enabled = True
        btnAdd.Enabled = False
        btnEdit.Enabled = False
        btnDel.Enabled = False
        btnSave.Enabled = True
        btnCance.Enabled = True
        cboDepartName.Items.Clear()


    End Sub

    Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
        
    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        Dim sex As String
        Dim intResult As Integer
        If radMale.Checked = True Then
            sex = "ชาย"
        Else
            sex = "หญิง"
        End If
        If actStatus = "insert" Then
            strSql = "insert into tbStudent values('" & txtStdId.Text & "','" & txtStdName.Text & "','" & txtStdLname.Text & "','" & txtAddress.Text & "','" & sex & "','" & txtGpa.Text & "','" & cboDepartName.Text & "')"
        End If
        sqlCom = New SqlCommand
        sqlCom.CommandType = CommandType.Text
        sqlCom.CommandTimeout = 15
        sqlCom.CommandText = strSql
        sqlCom.Connection = sqlConn
        sqlTs = sqlConn.BeginTransaction
        sqlCom.Transaction = sqlTs
        Try
            intResult = sqlCom.ExecuteNonQuery
            MessageBox.Show("บันทึกข้อมูลเรียบร้อย...")
            sqlTs.Commit()
            Call frmAssign12_Load(sender, e)
        Catch
            MessageBox.Show("เกิดข้อผิดพลาด ไม่สามารถบันทึกได้...")
            sqlTs.Rollback()
        End Try
        Call btnCance_Click(sender, e)
    End Sub

    Private Sub btnCance_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCance.Click
        dgvStudent.Enabled = True
        panStudent.Enabled = False
        btnAdd.Enabled = True
        btnEdit.Enabled = True
        btnDel.Enabled = True
        btnSave.Enabled = False
        btnCance.Enabled = False
        cboDepartName.Items.Clear()
        Call frmAssign12_Load(sender, e)
    End Sub

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

Private Sub cboDepartName_TextChanged(ByVal sender As System.Object, Byval e As System.EventArgs) Handles cboDepartName.TextChanged
  sqlConn = New SqlConnection
        sqlConn.ConnectionString = strCon
        sqlConn.Open()

        strSql = "select departID From tbDepartment WHERE departName  = @departName"
        sqlCom = New SqlCommand
        sqlCom.CommandType = CommandType.Text
        sqlCom.CommandTimeout = 15
        sqlCom.CommandText = strSql
        sqlCom.Connection = sqlConn
        sqlCom.Parameter.Addwithvalue("@departName", cboDepartName.text)
       Dim sqldataReader = new SQLdatareader()
     sqldataReader = sqlCom.executereader()
      sqldatareader.read()
if sqldatareader.hasrow then
_id = sqldatareader("departID ")
end if
      

End Sub

End Class



ประวัติการแก้ไข
2016-05-17 21:12:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-17 21:10:06 By : bigsuntat
 


 

No. 9

Guest


จาก #NO8 บรรทัดที่ 146 : Call btnCance_Click(sender, e)

คนที่ใช้คำสั่งแบบนี้ได้ก็แสดงว่า "ไม่ธรรมดา ณ. 10 ปีที่ผ่านมา"

@bigsuntat
วิ่งหางาน
--- OK
งานวิ่งมาหา
Source Code มันต้อง +อีก 10 ปี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-17 21:40:49 By : หน้าฮี
 


 

No. 10



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



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


Quote:
จาก #NO8 บรรทัดที่ 146 : Call btnCance_Click(sender, e)

คนที่ใช้คำสั่งแบบนี้ได้ก็แสดงว่า "ไม่ธรรมดา ณ. 10 ปีที่ผ่านมา"

@bigsuntat
วิ่งหางาน
--- OK
งานวิ่งมาหา
Source Code มันต้อง +อีก 10 ปี



ของคุณ @magma000 เค้าครับ ผมอ้างอิงมาเฉยๆ และใส่ สีแดงไว้ นั่นของผมครับ


ประวัติการแก้ไข
2016-05-17 21:44:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-17 21:43:55 By : bigsuntat
 


 

No. 11

Guest


Quote:
ของคุณ @magma000 เค้าครับ ผมอ้างอิงมาเฉยๆ และใส่ สีแดงไว้ นั่นของผมครับ


แค่คุณให้กำลังใจทวยระทม 1 นิ้วว่า สักวันหนึ่งคุณอาจยาวถึง 3 นิ้ว พอฯกับของผม


ปล. อุแว้อุแว้แถวฯบ้านผมมันยาวตั้ง 4 นิ้ว และบางคนยาวถึง 4.5 นิ้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-17 21:57:33 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยแก้ปัญหาให้หน่อยครับ เพิ่มข้อมูลไม่ได้ vb.net
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่