ProjectForStudy

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 235|ตอบกลับ: 11

[ถาม/ตอบ] สอบถามครับแบบนี้เป็นเพราะอะไร error converting datatype varchar to numeric

[คัดลอกลิงก์]
  • อารมณ์วันนี้
    เหนื่อย
    2019-3-20 20:08
  • เช็คชื่อแล้ว: 27 วัน

    [LV.4]BeginnerIII

    7

    กระทู้

    64

    โพสต์

    32

    เครดิต

    BabyGhost

    Rank: 1

    เครดิต
    32
    Ticket
    32
    จิตพิสัย
    6
    สอบถามครับแบบนี้เป็นเพราะอะไรผมทำสองโปรเจคเหมือนกันโดยที่ตัวนี้ผมคัดลอกมาจากตัวเก่าซึ่งใช้ได้ปกติไม่ขึ้นErrorผมที่ฐานข้อมูลแล้วก็เหมือนกันไม่รู้ว่าเกิดจากอะไร ขอผู้รู้ช่วยแนะนำด้วยครับ

    ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

    คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

    x
  • อารมณ์วันนี้
    แฮปปี้
    เมื่อวาน 07:47
  • เช็คชื่อแล้ว: 248 วัน

    [LV.8]ConquerorI

    20

    กระทู้

    519

    โพสต์

    1637

    เครดิต

    HawkBrain

    Rank: 4

    เครดิต
    1637
    Ticket
    1125
    จิตพิสัย
    512

    Merciful MemberInstructor

    puklit โพสต์ 2018-11-26 08:10:15 | ดูโพสต์ทั้งหมด
    แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2018-11-26 08:30

    1. ลองเช็ค ค่าตัวแปร b กับชนิดข้อมูลของฐานข้อมูลดูครับ ว่ากำหนดไว้ตรงกันหรือไม่
    เนื่องจาก มันฟ้องว่า
    เกิดข้อผิดพลาดในการแปลงชนิดของข้อมูลจากข้อความเป็นข้อมูลตัวเลข



    2. หรือให้สังเกตุตรงคำสั่ง sql ตรง  update ข้อมูลสินค้า set คงเหลือ = คงเหลือ -"& b &"

    มันน่าจะผิดตรงที่ผมแต้มสีแดงไว้ให้ เนื่องจาก ฟิล์ด คงเหลือในฐานข้อมูลท่านคงเก็บเป็นตัวเลข ส่วนตัวแปร b เป็น string
    สรุปสั้น ๆ คือ ชนิดของข้อมูลไม่เหมือนกัน จึงทำให้ไม่สามารถประมวลผลได้ ถึงแม้ค่า b จะถูกรับเข้ามาเป็นตัวเลขก็ตาม
    เช่น คงเหลือ = 10 ส่วน b = 4 เวลาคอมประมวลผล จะได้ 10 - '4' ไม่ใช่ 10 - 4
    ซึ่งจุดนี้เองหากท่านใช้ลักษณะการประมวลผลแบบนี้ในท่านควรจะใช้คำสั่งในการแปลงค่าเข้ามาช่วยก่อนส่งข้อมูลไปยังฐานข้อมูล


    ตัวอย่างคำสั่งการแปลงเฉพาะ VB.net
    https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/functions/type-conversion-functions

    ตัวอย่างคำสั่งการแปลงจาก Class .net ใช้ได้ทั้ง VB.net & C#.net
    https://docs.microsoft.com/en-us/dotnet/api/system.convert?view=netframework-4.7.2

    ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

    คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

    x
  • อารมณ์วันนี้
    เหนื่อย
    2019-3-20 20:08
  • เช็คชื่อแล้ว: 27 วัน

    [LV.4]BeginnerIII

    7

    กระทู้

    64

    โพสต์

    32

    เครดิต

    BabyGhost

    Rank: 1

    เครดิต
    32
    Ticket
    32
    จิตพิสัย
    6
     เจ้าของ| onedow โพสต์ 2018-11-26 08:55:23 | ดูโพสต์ทั้งหมด
    puklit ตอบกลับเมื่อ 2018-11-26 08:10
    1. ลองเช็ค ค่าตัวแปร b กับชนิดข้อมูลของฐานข้อมูลดูครั ...

    ขอบคุณมากครับ
  • อารมณ์วันนี้
    เหนื่อย
    2019-3-20 20:08
  • เช็คชื่อแล้ว: 27 วัน

    [LV.4]BeginnerIII

    7

    กระทู้

    64

    โพสต์

    32

    เครดิต

    BabyGhost

    Rank: 1

    เครดิต
    32
    Ticket
    32
    จิตพิสัย
    6
     เจ้าของ| onedow โพสต์ 2018-11-29 11:36:13 | ดูโพสต์ทั้งหมด
    รู้สาเหตุแล้วครับแต่ยังแก้ไม่ได้เป็นเพราะรหัสบาร์โค้ดเป็นแบบนี้เวลาตัดสต๊อกมันขึ้นError จะแก้ยังไงครับ แต่ถ้าลบรหัสบาร์โค้ดตัวนี้ออกจะทำงานปกติครับ

    ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

    คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

    x
  • อารมณ์วันนี้
    แฮปปี้
    เมื่อวาน 07:47
  • เช็คชื่อแล้ว: 248 วัน

    [LV.8]ConquerorI

    20

    กระทู้

    519

    โพสต์

    1637

    เครดิต

    HawkBrain

    Rank: 4

    เครดิต
    1637
    Ticket
    1125
    จิตพิสัย
    512

    Merciful MemberInstructor

    puklit โพสต์ 2018-11-29 12:22:18 | ดูโพสต์ทั้งหมด
    onedow ตอบกลับเมื่อ 2018-11-29 11:36
    รู้สาเหตุแล้วครับแต่ยังแก้ไม่ได้เป็นเพราะรหัสบาร์โ ...


    ตามรูปที่ท่านให้มา



    จากรูปบาร์โค้ดข้างบน เมื่อเทียบกับโค้ด
    บาร์โค้ด = ตัวแปร a ใช่ไหมครับ ถ้าใช้มันไม่น่าจะผิด เพราะมันเป็นข้อความ

    ส่วนตัวแปร b ที่ท่านประกาศมาเพื่อรับค่าจาก ListView1.Items(j).SubItems(4).text
    ิฺb ท่านจะเก็บจำนวนใช่หรือไม่ครับ? ถ้าใช่ ก็ผิดตรงนี้ครับ
    แล้วท่านอย่าลืมตรวจสอบฟิล์ด (คงเหลือ) ในฐานข้อมูลด้วยนะว่า กำหนดชนิดข้อมูลเป็นแบบไหน
    คิดว่าท่านต้องกำหนดชนิดข้อมูลเป็นตัวเลขอยู่แล้ว แต่ถ้าเป็น Char, Varchar,Nvarchar นี่จบเลยนะครับท่าน
    เพราะมันจะนำมาคำนวน หรือประมวลผลไม่ได้

    ควรจะเปลี่ยนเป็น

    Dim b as Integer = CInt(Form_ขายสินค้า.ListView.Item(j).SubItems(4).text)
    หรือไม่ก็
    Dim b as Integer = Convert.ToInt32(Form_ขายสินค้า.ListView.Item(j).SubItems(4).text)


    แล้วค่อยส่งไป Query ต่อไป

    ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

    คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

    x
  • อารมณ์วันนี้
    เหนื่อย
    2019-3-20 20:08
  • เช็คชื่อแล้ว: 27 วัน

    [LV.4]BeginnerIII

    7

    กระทู้

    64

    โพสต์

    32

    เครดิต

    BabyGhost

    Rank: 1

    เครดิต
    32
    Ticket
    32
    จิตพิสัย
    6
     เจ้าของ| onedow โพสต์ 2018-11-29 12:56:38 | ดูโพสต์ทั้งหมด
    แก้ไขครั้งสุดท้ายโดย onedow เมื่อ 2018-11-29 12:58

    ได้แล้วครับ  รูปที่1 ยังไม่ได้แก้
    รูปที่2 หลังจากแก้แล้ว



    ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

    คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

    x
  • อารมณ์วันนี้
    แฮปปี้
    เมื่อวาน 07:47
  • เช็คชื่อแล้ว: 248 วัน

    [LV.8]ConquerorI

    20

    กระทู้

    519

    โพสต์

    1637

    เครดิต

    HawkBrain

    Rank: 4

    เครดิต
    1637
    Ticket
    1125
    จิตพิสัย
    512

    Merciful MemberInstructor

    puklit โพสต์ 2018-11-29 13:03:33 | ดูโพสต์ทั้งหมด
    onedow ตอบกลับเมื่อ 2018-11-29 12:56
    ได้แล้วครับ  รูปที่1 ยังไม่ได้แก้
    รูปที่2 หลังจากแก้แล้ว

    รบกวนท่าน
    1.วางรูปหน้าออกแบบฐานข้อมูล ผมจะดูชนิดของข้อมูล
    2. หน้า Listview ตอนเพิ่มสินค้าเข้าไป ยังไม่ต้องกด Save

    นี้ให้ผมดูหน่อยครับ
    ผมจะนำมาเปรียบเทียบชนิดข้อมูลดู
  • อารมณ์วันนี้
    แฮปปี้
    เมื่อวาน 07:47
  • เช็คชื่อแล้ว: 248 วัน

    [LV.8]ConquerorI

    20

    กระทู้

    519

    โพสต์

    1637

    เครดิต

    HawkBrain

    Rank: 4

    เครดิต
    1637
    Ticket
    1125
    จิตพิสัย
    512

    Merciful MemberInstructor

    puklit โพสต์ 2018-11-29 13:25:47 | ดูโพสต์ทั้งหมด
    onedow ตอบกลับเมื่อ 2018-11-29 12:56
    ได้แล้วครับ  รูปที่1 ยังไม่ได้แก้
    รูปที่2 หลังจากแก้แล้ว

    ลองแก้เป็น

    Dim a as String = Form_ขายสินค้า.ListView.Item(j).SubItems(1).text
    Dim b as Integer = CInt(Form_ขายสินค้า.ListView.Item(j).SubItems(4).text)
  • อารมณ์วันนี้
    เหนื่อย
    2019-3-20 20:08
  • เช็คชื่อแล้ว: 27 วัน

    [LV.4]BeginnerIII

    7

    กระทู้

    64

    โพสต์

    32

    เครดิต

    BabyGhost

    Rank: 1

    เครดิต
    32
    Ticket
    32
    จิตพิสัย
    6
     เจ้าของ| onedow โพสต์ 2018-11-30 11:44:31 | ดูโพสต์ทั้งหมด
    puklit ตอบกลับเมื่อ 2018-11-29 13:25
    ลองแก้เป็น

    Dim a as String = Form_ขายสินค้า.ListView.Item(j).SubItems(1).text

    จะลองดูครับจะได้เป็นการศึกษาไปด้วย ขอบคุณครับ
  • อารมณ์วันนี้
    เหนื่อย
    2019-3-20 20:08
  • เช็คชื่อแล้ว: 27 วัน

    [LV.4]BeginnerIII

    7

    กระทู้

    64

    โพสต์

    32

    เครดิต

    BabyGhost

    Rank: 1

    เครดิต
    32
    Ticket
    32
    จิตพิสัย
    6
     เจ้าของ| onedow โพสต์ 2018-11-30 12:12:35 | ดูโพสต์ทั้งหมด
    ขอคำสั่งเปลี่ยนภาษาด้วยครับ เช่นเวลาเราเลือกภาษาไทยอยู่แล้วจะไปป้อนข้อมูลในTextBoxก็ให้มันเปลี่ยนภาษาเป็นภาษาอังกฤษก่อนครับ
    ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

    รายละเอียดเครดิต

    ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|ProjectForStudy  

    GMT+7, 2019-5-24 03:55 , Processed in 0.074140 second(s), 37 queries .

    Powered by Discuz! X3.2 R20150609, Rev.38

    © 2001-2013 Comsenz Inc.

    ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้