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 ไม่ยอมบันทึก ด่วน เลย นะค่ะ ปวดหัวมากเลย



 

รบกวนช่วยหน่อย นะค่ะ VB ไม่ยอมบันทึก ด่วน เลย นะค่ะ ปวดหัวมากเลย

 



Topic : 038206

Guest




23344


Code
[code][/code]Code (VB.NET)
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If txtMemId.Text = "" Then
MessageBox.Show("กรุณาระบุรหัสลูกค้าด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemId.Focus()
Exit Sub
End If

If chkNotMember.Checked = True Then
If txtMemName.Text = "" Then
MessageBox.Show("กรุณาระบุชื่อลูกค้าด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemName.Focus()
Exit Sub
End If
End If

If lsvFoodList.Items.Count = 0 Then
MessageBox.Show("กรุณาป้อนรายการสั่งอาหารด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtFoodId.Focus()
Exit Sub
End If

Dim sqlAdd As String = ""
Dim comAdd As OleDbCommand = New OleDbCommand

With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

Try
If MessageBox.Show("คุณต้องการบันทึกรายการอาหารที่สั่ง ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then

AutoGenerateTranID()

'บันทึกลงส่วน ของ CusOder

sqlAdd = "INSERT INTO Cus0der (Or_No,Ore_date,Mem_Id,Total_Price,Persent,Table_No,No_Count) "
sqlAdd &= " VALUES('" & LastTransID = "" & "',"
sqlAdd &= "'" & dtpAdmitDate.Value.ToShortDateString & "',"
sqlAdd &= "'" & txtMemId.Text & "',"
sqlAdd &= "'" & lbltotal.Text & "',"
sqlAdd &= "'" & lblDiscount.Text & "',"
sqlAdd &= "'" & cboTable.Visible & "',"
sqlAdd &= "'" & lblSumBeforeDiscount.Text & ")"

'sqlAdd &= "0,'0')"

With comAdd
.CommandType = CommandType.Text
.CommandText = sqlAdd
.Connection = Conn
'MessageBox.Show(comAdd.CommandText.ToString())
comAdd.ExecuteNonQuery()
End With

Dim i As Integer = 0
Dim tmpFoodId As String = ""

Dim sqlFood As String = ""

Dim tmptxtAmount As Integer = 0
Dim tmplbltotal As Integer = 0
Dim tmpAmount As Integer = 0
Dim tmplblSalePrice As Integer = 0
Dim tmpSum As Integer = 0
Dim tmpDiscount As Integer = 0
Dim tmpNet As Integer = 0

Dim tmpRentDate As Date
Dim tmpReturnDate As Date

tmpRentDate = Date.Now

If rIsMember = "1" Then
rRentRateDiscount = 0

End If

For i = 0 To lsvFoodList.Items.Count - 1

sqlFood = "INSERT INTO Sale(Or_No,Food_Id,Unit_Price,"
sqlFood &= " Amount,Total"
sqlFood &= " VALUES('" & LastTransID & "',"

tmpFoodId = lsvFoodList.Items(i).SubItems(0).Text
tmptxtAmount = CInt(lsvFoodList.Items(i).SubItems(2).Text)
tmplbltotal = CInt(lsvFoodList.Items(i).SubItems(3).Text)
tmpAmount = CInt(lsvFoodList.Items(i).SubItems(4).Text)

sqlAdd &= "'" & tmpFoodId & "',"
sqlAdd &= "'" & tmpRentDate & "',"

tmpReturnDate = tmpRentDate.AddDays(tmplbltotal)

sqlAdd &= "'" & tmpReturnDate & "',"
sqlAdd &= tmptxtAmount & ","

tmpSum = (tmptxtAmount * tmplblSalePrice)
tmpDiscount = CInt(tmpSum * rRentRateDiscount)
tmpNet = tmpSum - tmpDiscount

sqlAdd &= tmpNet & ","
sqlAdd &= "'0')"

With comAdd
.CommandText = sqlAdd
.ExecuteNonQuery()
End With

sqlFood = "SELECT Food_Id,Food_Name,Type_Id,Price FROM Food"
sqlFood &= " WHERE (ISBN='" & tmpFoodId & "')"

da.SelectCommand.CommandText = sqlFood
da.Fill(ds, "Food")


With comAdd
.CommandText = sqlAdd
.ExecuteNonQuery()
End With
Next

If chkNotMember.Checked = True Then
Dim sqlMem As String = ""
Dim comMember As OleDbCommand = New OleDbCommand

sqlMem = "INSERT INTO Member (Mem_ID,Mem_Name,MemId_Card,Mem_Add, "
sqlMem &= " Mem_Phone,DateRegis)"
sqlMem &= " VALUES ('" & txtMemId.Text & "',"
sqlMem &= "'" & txtMemName.Text & "',"
sqlMem &= "'" & txtidcard.Text & "',"
sqlMem &= "'" & txtMemAdd.Text & "',"
sqlMem &= "'" & txtphone.Text & "',"
'sqlMem &= "'"


If OptMale.Checked = True Then
sqlMem &= "'=ชาย',"
ElseIf OptFemale.Checked = True Then
sqlMem &= "'หญิง',"
End If

sqlMem &= "'" & txtidcard.Text & "',"
sqlMem &= "'" & txtMemAdd.Text & "',"
sqlMem &= "'" & txtphone.Text & "',"
'sqlMem &= "'0',"
sqlMem &= "'" & tmpRentDate & "',"
sqlMem &= "'" & tmpRentDate & "',"
sqlMem &= "'', '1','0')"

With comMember
.CommandType = CommandType.Text
.CommandText = sqlMem
.Connection = Conn
.ExecuteNonQuery()
End With
End If

MessageBox.Show("บันทึกรายการเช่าหนังสือเรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)

If IsInstallPrinter() = True Then
If prDlg.ShowDialog = Windows.Forms.DialogResult.OK Then
'prDoc.Print()
End If
Else
MessageBox.Show("กรุณาติดตั้งเครื่อง Printer ก่อนสั่งพิมพ์เอกสาร", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

ClearAllMemberData()
ClearAllFoodData()
lsvFoodList.Items.Clear()

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"

chkNotMember.Checked = False
'cboMemberType.SelectedIndex = 0
txtMemId.Enabled = True
txtMemId.Focus()

End If
Catch ErrProcess As Exception
MessageBox.Show("ไม่สามารถบันทึกรายการสั่งอาหารได้ เนื่องจาก " & ErrProcess.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End Try
End Sub



ช่วยแก้ให้หน่อย นะค่ะ
ขอบคุณค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-02 19:08:31 By : ยัยใบบ้า View : 2373 Reply : 58
 

 

No. 1



โพสกระทู้ ( 1,528 )
บทความ ( 1 )

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

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


Code
sqlFood = "INSERT INTO Sale(Or_No,Food_Id,Unit_Price,"
sqlFood &= " Amount,Total"
sqlFood &= " VALUES('" & LastTransID & "',"

tmpFoodId = lsvFoodList.Items(i).SubItems(0).Text
tmptxtAmount = CInt(lsvFoodList.Items(i).SubItems(2).Text)
tmplbltotal = CInt(lsvFoodList.Items(i).SubItems(3).Text)
tmpAmount = CInt(lsvFoodList.Items(i).SubItems(4).Text)

sqlAdd &= "'" & tmpFoodId & "',"
sqlAdd &= "'" & tmpRentDate & "',"

tmpReturnDate = tmpRentDate.AddDays(tmplbltotal)

sqlAdd &= "'" & tmpReturnDate & "',"
sqlAdd &= tmptxtAmount & ","

tmpSum = (tmptxtAmount * tmplblSalePrice)
tmpDiscount = CInt(tmpSum * rRentRateDiscount)
tmpNet = tmpSum - tmpDiscount

sqlAdd &= tmpNet & ","
sqlAdd &= "'0')"




ตกวงเล็บมั้งครับ
และอาจฟิวส์ไม่ครบนะครับ












Date : 2010-02-02 19:39:16 By : Sek-Artdrinker
 


 

No. 2

Guest


แก้เฉพาะส่วนนี้ หรอ ค่ะ

มัน ก้อติดเหมือนเดิม อ่ะค่ะ


ช่วยหน่อย นะค่ะ
Date : 2010-02-02 19:59:38 By : ยัยใบบ้า
 

 

No. 3



โพสกระทู้ ( 1,528 )
บทความ ( 1 )

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

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


ถ้า ERROR เหมือนเดิม ก็ลองเช็คดูอีทีอะครับว่า ฟิวตรงกับค่าที่ใส่ไปมั้ย และเช็คเรื่อง field type ด้วย
สำคัญหา error ให้ได้ก่อนนะครับว่า error ตรงใหน
Date : 2010-02-02 20:12:03 By : Sek-Artdrinker
 


 

No. 4

Guest


ไม่ได้ เลย อ่ะค่ะ
ลองแล้ว ก้อไม่ได้
หมด หนทาง แล้ว จริงๆ
Date : 2010-02-02 20:39:01 By : ยัยใบบ้า
 


 

No. 5



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

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

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

ค่อยๆไล่ดูครับ พวก เขาคู่ เขาเดี่ยวนี่ปวดหัวครับ
Date : 2010-02-02 23:26:09 By : KohDev
 


 

No. 6

Guest


ไปแก้ตรงฐานข้อมูลให้เลือกรหัสอาหารใช้ซ้ำกันได้ตรงใกล้กับดัชนี
Date : 2010-02-03 08:24:22 By : kvang_khanongdet
 


 

No. 7

Guest


ตรงไหน ล่ะค่ะ

ใช้ ฐาน แอกเสดนะ ค่ะ
Date : 2010-02-03 09:26:57 By : ยัยใบบ้า
 


 

No. 8

Guest


sd


แก้ จนกลายเป็นแบบนี้ อ่ะ ค่ะ
มันเป็น อะไร อ่ะค่ะ
Date : 2010-02-03 10:00:18 By : ยัยใบบ้า
 


 

No. 9



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


หนังสือเล่มไหนมันชอบสอนให้เขียน command string แบบนี้อะ อยากไม่เผาสำนักพิมพ์มันจริงๆ

Code (VB.NET)
sqlMem = "INSERT INTO Member (Mem_ID,Mem_Name,MemId_Card,Mem_Add, "
sqlMem &= " Mem_Phone,DateRegis)"
sqlMem &= " VALUES ('" & txtMemId.Text & "',"
sqlMem &= "'" & txtMemName.Text & "',"
sqlMem &= "'" & txtidcard.Text & "',"
sqlMem &= "'" & txtMemAdd.Text & "',"
sqlMem &= "'" & txtphone.Text & "',"
'sqlMem &= "'"


string ขาดๆ ไม่เป็นเส้นเดียวกัน เวลาแทนค่าก็ยาก แก้เป็นแบบนี้ดีกว่าไหม

Code (VB.NET)
sqlMem = "Insert Into [Member] ([Mem_ID], [Mem_Name], [MemId_Card], [Mem_Add], [Mem_Phone], [DateRegis]) " & _
"Values (" & _
"@Mem_ID, @Mem_Name, @MemId_Card, @Mem_Add, @Mem_Phone, @DateRegis" & _
")"


จับไปสร้างเป็น OleDbCommand แล้วแทนค่าแบบนี้ (จะได้กำหนด type ให้ data ที่ป้อนกับใน db ตรงกัน)

Code (VB.NET)
Dim comMember As OleDbCommand = New OleDbCommand(sqlMem, Conn)
comMember.Parameters.Add("@Mem_ID", OleDbType.Integer).Value = CInt(txtMemName.Text)
...
...
...
...
comMember.Parameters.Add("@DateRegis", OleDbType.Date).Value = CDate(อะไรเนี่ย)


ไม่ใช่อะไรๆ ก็จะป้อนไปแต่ string อย่างเดียว แล้วไอประเภทเปิด connection ไว้ตั้งแต่ที่บ้านอีก

จะเปิดไว้ทำไมหือ จะใช้แล้วค่อยเปิดก็ได้ เปิดแล้วก็ปิด ขอบ่นหน่อยเถอะ ยัง error ไม่หมดหรอก ยังเหลืออีกบานแก้ไปเรื่อยๆ แล้วกัน

ข้างบนไม่ได้ช่วยแก้ error ให้หรอกนะ แค่เห็นวิธีเขียนแล้วหงุดหงิด เลยขอบ่นอย่างเดียว
Date : 2010-02-03 10:39:43 By : tungman
 


 

No. 10

Guest


ก้อไม่เข้าใจอยู่ดี

V
V
V


เศร้าจิง ๆ โดนบ่น อีก
Date : 2010-02-03 10:58:23 By : ยัยใบบ้า
 


 

No. 11



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ไกล์ดให้นิด

1. จำนวนฟิลที่จะ insert ต้องเท่ากับจำนวนฟิลของ value
2. ฟิลที่เป็น autonumber ไม่ต้อง insert
3. type ของ db กับ value ที่ป้อนต้องเป็น type เดียวกัน

เดี๋ยวนึกออกอีกจะมาเพิ่มคำแนะนำให้อีก แต่เหลือไป check error เอาเองนะ

โทษฐานตอนเรียนไม่ยอมซ้อนมือ เจองานจริงเข้าไปเลยไม่ทำไม่เป็น อิอิ (เห็นคนงานลนก้นแล้วมีความสุข )
Date : 2010-02-03 11:03:09 By : tungman
 


 

No. 12

Guest


ก้อคนไม่เข้าใจ

ทำไมพี่ต้งบ่น ด้วยอ่ะค่ะ

เศร้าจิง ๆ
Date : 2010-02-03 11:03:25 By : ยัยใบบ้า
 


 

No. 13

Guest


พี่ มีความสุข
แต่หนู ดิ เศร้า

ไม่ได้ นอน มาหลาย วันแล้ว
พีเซ็น ก้อใกล้
Date : 2010-02-03 11:05:36 By : ยัยใบบ้า
 


 

No. 14



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ก็ธรรมดา คิดว่าผมไม่เคยผ่านช่วงเวลานั้นหรือไง ทำตามที่บอกข้างบนนั่นแหละ ลองไล่ดู

เดี๋ยวก็ได้ใจเย็นๆ มันมีไม่กี่สาเหตุหรอกที่ insert ไม่ได้ อิอิ -D:
Date : 2010-02-03 11:20:41 By : tungman
 


 

No. 15

Guest


ขอบคุณนะค่ะ
แต่ ไม่ไหว แล้ว ล่ะ

พอแก้ ตรงนี้ได้ เดี๋ยว ก้อมี เหตุให้ต้องแก้ อีก
Date : 2010-02-03 11:24:33 By : ยัยใบบ้า
 


 

No. 16



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


เอา class ไปใช้ปะ

แก้ตรง connection string ให้เป็น file db ของคุณ

แล้วเอามาใช้โดยสร้างเป็น object จาก class นี้

AccessDatabase.vb
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
 
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms
 
Namespace WindowsFormsApplication1
    Class AccessDatabase
        Private AccessConnection As OleDbConnection
        Private AccessCommand As OleDbCommand
 
        Private AccessCommandString As String
 
        Public  Sub New()
            Dim AccessConnectionString As String =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\AccessDatabase.mdb" 
 
            AccessConnection = New OleDbConnection(AccessConnectionString)
        End Sub
 
        Protected Property CommandString() As String
        	Get 
            	 Return AccessCommandString
        	End Get
        	Set (ByVal Value As String) 
                AccessCommandString = value
                AccessCommand = New OleDbCommand(AccessCommandString, AccessConnection)
        	End Set
        End Property
 
        Protected  Sub AddParameter(ByVal ParameterName As String, ByVal ParameterType As OleDbType, ByVal ParameterValue As Object)
            AccessCommand.Parameters.Add(ParameterName, ParameterType)
            AccessCommand.Parameters(ParameterName).Value = ParameterValue
        End Sub
 
        Protected Function ExecuteQuery() As DataTable
            Dim dataTable As DataTable =  New DataTable() 
 
            Try
                Dim AccessDataAdapter As OleDbDataAdapter =  New OleDbDataAdapter(AccessCommand) 
                AccessDataAdapter.Fill(dataTable)
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return Nothing
            End Try
 
            Return dataTable
        End Function
 
        Protected Function ExecuteScalar() As Object
            Dim Result As Object =  0 
 
            Try
                AccessConnection.Open()
                Result = AccessCommand.ExecuteScalar()
                AccessConnection.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return 0
            End Try
 
            Return Result
        End Function
 
        Protected Function ExecuteNonQuery() As Boolean
            Try
                AccessConnection.Open()
                AccessCommand.ExecuteNonQuery()
                AccessConnection.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return False
            End Try
 
            Return True
        End Function
    End Class
End Namespace

Date : 2010-02-03 11:45:34 By : tungman
 


 

No. 17

Guest


แล้ว จะเซปไ ด้ หรอ

ดูแล้ว ก้อ งง
Date : 2010-02-03 11:51:41 By : ยัยใบบ้า
 


 

No. 18



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


วิธีใช้ สร้าง class ตั้งชื่อว่า AccessDatabase.vb แล้วก็อบโค้ดด้านบนไปใส่

จะนั้นก็เรียกใช้ได้เลย

Insert
Dim InsertMember As AccessDataBase = New AccessDataBase()

InsertMember.CommandString = "Insert Into [Member] ([Mem_ID], [Mem_Name], [MemId_Card], [Mem_Add], [Mem_Phone], [DateRegis]) " & _
"Values (" & _
"@Mem_ID, @Mem_Name, @MemId_Card, @Mem_Add, @Mem_Phone, @DateRegis" & _
")"
InsertMember.AddParameter("@Mem_ID", OleDbType.Integer, CInt(txtMemId.Text))
InsertMember.AddParameter("@Mem_Name", OleDbType.VarChar, txtMemName.Text)
InsertMember.AddParameter("@MemId_Card", OleDbType.VarChar, txtidcard.Text)
InsertMember.AddParameter("@Mem_Add", OleDbType.VarChar, txtMemAdd.Text)
InsertMember.AddParameter("@Mem_Phone", OleDbType.VarChar, txtphone.Text)
InsertMember.AddParameter("@DateRegis", OleDbType.Date, CDate(txtDatePicker.Text))

InsertMember.ExecuteNonQuery()


วิธีใช้ก็แค่ป้อน command แทนค่าใน commmand แล้วก็สั่ง execute จะได้ไม่สับสนเวลาติดต่อฐานข้อมูล

Select 1
Dim Dt As DataTable = New DataTable()
Dim SelectExample As AccessDatabase = New AccessDatabase()

SelectExample.CommandString = "Select * From [MyTable]"

Dt = SelectExample.ExecuteQuery()

Select 2
Dim Dt As DataTable = New DataTable()
Dim SelectExample As AccessDatabase = New AccessDatabase()

SelectExample.CommandString = "Select * From [MyTable] Where [ID]=@ID"
SelectExample.AddParameter("@ID", OledbType.Integer, 8)

Dt = SelectExample.ExecuteQuery()

Date : 2010-02-03 11:56:23 By : tungman
 


 

No. 19

Guest


พี่เข้าใจของพี่คนเดียว
นู๋ ไม่เข้าใจหลอกค่ะ
Date : 2010-02-03 11:58:44 By : ยัยใบบ้า
 


 

No. 20



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


เอาน่าๆ จะแคร์ทำไมกับคำพูดของคนในเน็ต ดูแล้วทำความเข้าใจให้ทำงานเสร็จก็พอ

ปากผมแบบนี้แหละขึ้นหน้าหนึ่ง drama มาแล้ว ไม่ได้น่าภูมิใจเลย อิอิ
Date : 2010-02-03 13:05:28 By : tungman
 


 

No. 21



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



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


เเต่พี่ tungman ใจดีนะครับ ผม Confirm ครับ

Project ผมพี่เค้าช้วยได้ตั้งเยอะมากๆจริงๆ เเต่เราก็ต้องมีความเข้าใจเรื่องนั้นๆก่อนระดับนึงนะครับ

ยังไงลองไล่ๆดูครับ Run Single Step ดู ว่ามันทำงานยังไง

สู้ๆครับ ผมก็ทำ Project เหมือนกัน
Date : 2010-02-03 16:11:55 By : artcode
 


 

No. 22



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



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


ผมขอเอาใจช่วยด้วยคนครับ พี่แพนด้ากัญชา เค้าก็บ่นไปงั้นละครับ อย่างคิดมากครับ สู้ๆ
Date : 2010-02-03 20:38:13 By : Nameless
 


 

No. 23



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


เมามันไปหน่อย สงสัยไปจี้ถูกต่อมท้อเข้า หายไปเลย

ไม่แกล้งแล้วครับ กลับมาเถอะ มาทำต่อมา
Date : 2010-02-03 21:06:50 By : tungman
 


 

No. 24

Guest


มัน เกิด ความผิดพลาด ขึ้น อีกอย่าง แล้ว อ่ะพี่


ww

มัน เป็นรายหรอ ??
Date : 2010-02-03 21:16:18 By : ยัยใบบ้า
 


 

No. 25

Guest


แล้ว INSERT ตารางแล้ว
จำเป็นต้อง มี UPDATE เสมอ ไป ป่ะ

งง ไปหมด แล้ว
Date : 2010-02-03 21:18:57 By : ยัยใบบ้า
 


 

No. 26



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


น่างงอยู่หรอก มัน error เกิดทุกบรรทัดเลย มาลองแก้ส่วนนี้ก่อน (ที่ผมจะง่วง)

Code (VB.NET)
                'บันทึกลงส่วน ของ CusOder
                'sqlAdd = "INSERT INTO Cus0der (Or_No,Ore_date,Mem_Id,Total_Price,Persent,Table_No,No_Count) " <-- อันนี้น่าสงสัยทำไมชื่อ table มันชื่อ Cus0der เลขศูนย์นะไม่ใช่ตัวโอ
                'sqlAdd &= " VALUES('" & LastTransID = "" & "',"
                'sqlAdd &= "'" & dtpAdmitDate.Value.ToShortDateString & "',"
                'sqlAdd &= "'" & txtMemId.Text & "',"
                'sqlAdd &= "'" & lbltotal.Text & "',"
                'sqlAdd &= "'" & lblDiscount.Text & "',"
                'sqlAdd &= "'" & cboTable.Visible & "',"
                'sqlAdd &= "'" & lblSumBeforeDiscount.Text & ")"

                'sqlAdd &= "0,'0')"

                'With comAdd
                '.CommandType = CommandType.Text
                '.CommandText = sqlAdd
                '.Connection = Conn
                'MessageBox.Show(comAdd.CommandText.ToString())
                'comAdd.ExecuteNonQuery()
                'End With

                Dim sqlAdd As String = "Insert Into [Cus0der] ([Or_No], [Ore_date], [Mem_Id], [Total_Price], [Persent], [Table_No], [No_Count]) " & _
                "Values (" & _
                "@Or_No, @Ore_date, @Mem_Id, @Total_Price, @Persent, @Table_No, @No_Count" & _
                ")"
                Dim comAdd As OleDbCommand = New OleDbCommand(sqlAdd, Conn)
                comAdd.Parameters.Add("@Or_No", OleDbType.Integer).Value = LastTransID
                comAdd.Parameters.Add("@Ore_date", OleDbType.Date).Value = dtpAdmitDate.Value
                comAdd.Parameters.Add("@Mem_Id", OleDbType.Integer).Value = CInt(txtMemId.Text)
                comAdd.Parameters.Add("@Total_Price", OleDbType.Currency).Value = CDbl(lbltotal.Text)
                comAdd.Parameters.Add("@Persent", OleDbType.Currency).Value = CDbl(lblDiscount.Text)
                comAdd.Parameters.Add("@Table_No", OleDbType.VarChar).Value = cboTable.Visible '<-- อะไรครับ งง
                comAdd.Parameters.Add("@No_Count", OleDbType.Currency).Value = CDbl(lblSumBeforeDiscount.Text)

                comAdd.ExecuteNonQuery()


ผมกำหนด type ถูกรึเปล่า แล้ว cboTable.Visible คืออะไร
Date : 2010-02-03 21:30:59 By : tungman
 


 

No. 27



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ส่วนอันนี้ ตกลง string command ใช้ sqlFood หรือ sqlAdd อันแน่

Code (VB.NET)
                    sqlFood = "INSERT INTO Sale(Or_No,Food_Id,Unit_Price,"
                    sqlFood &= " Amount,Total"
                    sqlFood &= " VALUES('" & LastTransID & "',"

                    tmpFoodId = lsvFoodList.Items(i).SubItems(0).Text
                    tmptxtAmount = CInt(lsvFoodList.Items(i).SubItems(2).Text)
                    tmplbltotal = CInt(lsvFoodList.Items(i).SubItems(3).Text)
                    tmpAmount = CInt(lsvFoodList.Items(i).SubItems(4).Text)

                    sqlAdd &= "'" & tmpFoodId & "',"
                    sqlAdd &= "'" & tmpRentDate & "',"

                    tmpReturnDate = tmpRentDate.AddDays(tmplbltotal)

                    sqlAdd &= "'" & tmpReturnDate & "',"
                    sqlAdd &= tmptxtAmount & ","

                    tmpSum = (tmptxtAmount * tmplblSalePrice)
                    tmpDiscount = CInt(tmpSum * rRentRateDiscount)
                    tmpNet = tmpSum - tmpDiscount

                    sqlAdd &= tmpNet & ","
                    sqlAdd &= "'0')"

                    With comAdd
                        .CommandText = sqlAdd
                        .ExecuteNonQuery()
                    End With

Date : 2010-02-03 21:40:47 By : tungman
 


 

No. 28

Guest


นู๋ เขียน Access นะไม่ใช่ SQL นู๋ งง
โค๊ด แบบ SQL มั๊กมากเลย
Date : 2010-02-03 21:42:09 By : ยัยใบบ้า
 


 

No. 29



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ตัวแปรหนูทั้งทั้งแหละ แล้ว access นี่ก็ใช้ sql command เหมือนกัน
Date : 2010-02-03 21:44:28 By : tungman
 


 

No. 30

Guest


เปลี่ยนเป็น sqlSale แล้ว ง่ะ
Date : 2010-02-03 21:45:11 By : ยัยใบบ้า
 


 

No. 31

Guest


ก้อใช่ นู๋ ถึง งง ไง
ถ้า ไม่ งง ก้อ คง ไม่ต้อง มาให้ พี่ นั่ง ปวดหัวอยู่ หรอกค่ะ
Date : 2010-02-03 21:46:52 By : ยัยใบบ้า
 


 

No. 32



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


งั้นเอาทีละส่วน เอา no.26 ก่อนบอกมาว่า table นั้นมี type บ้าง

ปล. ขออย่าใช้ภาษาแช็ต ผมอ่านแล้วปวดหัวมาก
Date : 2010-02-03 21:49:31 By : tungman
 


 

No. 33

Guest


มันกลายพันธ์อีหแล้ว ง่ะ
พี่ชาย
ee
Date : 2010-02-03 21:50:54 By : ยัยใบบ้า
 


 

No. 34

Guest


ขอโทษ ขอโทษ

พี่ชายอย่าเพิ่ง อารมณ์ เสีย
พี่ใช้ ภาษา พูด ที่ ให้หนู เข้า ใจด้วยซิค่ะ พี่
Date : 2010-02-03 21:57:53 By : ยัยใบบ้า
 


 

No. 35



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ส่งเมื่อไหร่ล่ะครับ

อยากให้ไปอ่านวิธีการใช้ sql command ก่อนจริงๆ

ศึกษาเรื่องการใชคำสั่ง select insert update delete กับเรื่อง type ด้วย

ทันไหม
Date : 2010-02-03 21:58:53 By : tungman
 


 

No. 36

Guest


Integer กับ String และก็ Date
Date : 2010-02-03 22:00:39 By : ยัยใบบ้า
 


 

No. 37



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


อันไหน type อะไรบ้างครับ ช่วยแจงเป็นรายตัวหน่อย
Date : 2010-02-03 22:01:53 By : tungman
 


 

No. 38

Guest


ไม่ทัน แล้ว ค่ะ
พี่อย่เพิ่ง ประ ชด กัน ได้ ไหม ค่ะ
รู้ แล้ว ค่ะ ว่า .....นั่น แหล่ะ

พี่อย่าเพิ่ง หงุดหงิดซิค่ะ
Date : 2010-02-03 22:02:29 By : ยัยใบบ้า
 


 

No. 39

Guest


Code
[code][/code]Code (VB.NET)
Dim sqlSale As String = ""
AutoGeneratetakeid() 'เรียกใช้ซับบูทีนสำหรับสร้างเลขที่ใบสั่งอาหาร (Or_No) อัตโนมัติ
sqlSale = "INSERT INTO CusOrder (Or_No,Ore_date,Mem_Id,Total_Price,"
sqlSale &= "Persent,Table_No,No_Count)"
sqlSale &= "VALUES('" & LastOr_No & "',"
sqlSale &= "'" & txtMemId.Text & "',"
sqlSale &= "'" & dtpAdmitDate.Value.ToShortDateString & "',"
sqlSale &= "'" & CInt(lbltotal.Text) & "',"
sqlSale &= "'" & CInt(lblDiscount.Text) & "',"
sqlSale &= "'" & cboTable.Text & "',"
sqlSale &= "'" & CInt(lblSumBeforeDiscount.Text) & "')"




งั้น พี่ไปนอน ก็ได้ ค่ะ
หนูไม่ลบกวน ก็ได้
Date : 2010-02-03 22:04:35 By : ยัยใบบ้า
 


 

No. 40



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ผมง่วงจริงๆ ไม่ได้ประชด กลางวันทำงานซะแบ็ตหมดไปแล้ว พิมพ์ผิดๆ ถูกๆ แล้วเนี่ย
Date : 2010-02-03 22:05:08 By : tungman
 


 

No. 41

Guest


งั้น ก้อไปนอน เถอะค่ะ
พักผ่อน สมอง เตรียมตัว ทำงาน

ฝัน ดีนะค่ะ
Date : 2010-02-03 22:08:01 By : ยัยใบบ้า
 


 

No. 42



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


เอาอันนี้ให้จบๆ ก่อน สักอันจะได้มีกำลังใจทำต่อ

ใส่ type มาให้ซะดีๆ

[Or_No] = type อะไร
[Ore_date] = type อะไร
[Mem_Id] = type อะไร
[Total_Price] = type อะไร
[Persent] = type อะไร
[Table_No] = type อะไร
[No_Count] = type อะไร
Date : 2010-02-03 22:08:52 By : tungman
 


 

No. 43

Guest


[Or_No] = type อะไร Text
[Ore_date] = type อะไร Date/Time
[Mem_Id] = type อะไร Text
[Total_Price] = type อะไร Text
[Persent] = type อะไร Text
[Table_No] = type อะไร Text
[No_Count] = type อะไร AutoNumber
Date : 2010-02-03 22:15:39 By : ยัยใบบ้า
 


 

No. 44



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


แก้ตามนี้

Code (VB.NET)
'บันทึกลงส่วน ของ CusOder
'sqlAdd = "INSERT INTO Cus0der (Or_No,Ore_date,Mem_Id,Total_Price,Persent,Table_No,No_Count) " <-- อันนี้น่าสงสัยทำไมชื่อ table มันชื่อ Cus0der เลขศูนย์นะไม่ใช่ตัวโอ
'sqlAdd &= " VALUES('" & LastTransID = "" & "',"
'sqlAdd &= "'" & dtpAdmitDate.Value.ToShortDateString & "',"
'sqlAdd &= "'" & txtMemId.Text & "',"
'sqlAdd &= "'" & lbltotal.Text & "',"
'sqlAdd &= "'" & lblDiscount.Text & "',"
'sqlAdd &= "'" & cboTable.Visible & "',"
'sqlAdd &= "'" & lblSumBeforeDiscount.Text & ")"

'sqlAdd &= "0,'0')"

'With comAdd
'.CommandType = CommandType.Text
'.CommandText = sqlAdd
'.Connection = Conn
'MessageBox.Show(comAdd.CommandText.ToString())
'comAdd.ExecuteNonQuery()
'End With

Dim sqlAdd As String = "Insert Into [Cus0der] ([Or_No], [Ore_date], [Mem_Id], [Total_Price], [Persent], [Table_No]) " & _
"Values (" & _
"@Or_No, @Ore_date, @Mem_Id, @Total_Price, @Persent, @Table_No" & _
")"

Dim comAdd As OleDbCommand = New OleDbCommand(sqlAdd, Conn)
comAdd.Parameters.Add("@Or_No", OleDbType.VarChar).Value = LastTransID
comAdd.Parameters.Add("@Ore_date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Mem_Id", OleDbType.VarChar).Value = txtMemId.Text
comAdd.Parameters.Add("@Total_Price", OleDbType.VarChar).Value = lbltotal.Text
comAdd.Parameters.Add("@Persent", OleDbType.VarChar).Value = lblDiscount.Text
comAdd.Parameters.Add("@Table_No", OleDbType.VarChar).Value = cboTable.Text
'comAdd.Parameters.Add("@No_Count", OleDbType.VarChar).Value = CDbl(lblSumBeforeDiscount.Text) AutoNumber ไม่ต้อง Insert มันจะเติมให้เอง

comAdd.ExecuteNonQuery()

Date : 2010-02-03 22:21:04 By : tungman
 


 

No. 45



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


หลักๆ ก็คงต้องคำนึงถึง type ที่จะเก็บต้องป้อนให้ตรงกัน

ดูที่ทำให้เป็นตัวอย่างนะ คือ

เขียน command ก่อน อันไหนต้องแทนค่าให้นำหน้าด้วย @

แล้วสร้าง OleDbCommand จะนั้นก็แทนค่า (ดู type ให้ตรงกับใน access ด้วย)

แค่นี้ก็เรียบร้อย ไม่เห็นยากเลย ใจเย็นๆ ปวดหัวก็ไปนอนพักให้เต็มที่ พรุ่งนี้จะได้ลุยต่อ


ปล. วันนี้เซียนๆ ไปไหนกันหมดไม่มีใครอยู่เลยหรือ

สำหรับวันนี้สวัสดี
Date : 2010-02-03 22:26:51 By : tungman
 


 

No. 46

Guest


พอSave มัน ขึ้น ข้อผิดพลาดว่า

Conversion from string "แกงไก่"to type'Integer'is not valid. แบบนี้

ไม่มีกำลัง ใจทำเลย พอแก้ อัน โน้นได้ ก้อมี อันใหม่ มาให้ คิด
Date : 2010-02-03 22:28:10 By : ยัยใบบ้า
 


 

No. 47

Guest


หนักเลย ทีนี้

dd
Date : 2010-02-03 22:33:46 By : ยัยใบบ้า
 


 

No. 48

Guest


Save แล้ว แต่ไม่ลงฐาน ข้อมูล

เซ็งจิง ๆ
Date : 2010-02-03 23:16:00 By : ยัยใบบ้า
 


 

No. 49

Guest


ขอโทษนะคับ ทำแบบ windowsapplication รึป่าวคับ
Date : 2010-02-03 23:47:30 By : ปั้น
 


 

No. 50



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

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

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


ตรวจสอบ Type ของ Access กับ OleDb ให้ตรงกัน

Access : OleDb

Text = VarChar
Memo = VarChar
Number = Integer
Date/Time = Date/Time
Currency = Double
AutoNumber = Integer
Yes/No = Boolean
Object Ole = Any Type
HyperLink = VarChar

ต้องให้ตรงกันนะ

------------------------------------------------------
เกี่ยวกับการติดต่อ Access

1. สร้าง Connection กับ Access (ทำครั้งเดียวพอ จะใช้ค่อยเปิด ไม่ต้องเปิดตลอด)
2. สร้าง Command โดยใช้คำสั่งของ sql
- select (เรียกดูข้อมูล) ถ้าใช้ DataAdapter ไม่ต้องเปิด Connection (ไม่ต้องใช้คำสั่งนี้ Connection.Open()) แต่ถ้าใช้ Reader ต้องเปิด execute อย่าลืมปิดด้วย
- Insert (เพิ่มระเบียน) เวลา execute คำสั่งต้องเปิด Connection และ execute เสร็จให้ปิดเลย ข้อมูล Type AutoNumber ไม่ต้องป้อนให้ มันจะเพิ่มเองอัตโนมัติ
- Update (แก้ไขระเบียน) เวลา execute คำสั่งต้องเปิด Connection และ execute เสร็จให้ปิดเลย ข้อมูล Type AutoNumber ไม่สามารถแก้ไขได้ ไม่ต้องป้อนให้มันนะ
- Delete (ลบระเบียน) เวลา execute คำสั่งต้องเปิด Connection และ execute เสร็จให้ปิดเลย

เห็นไหมง่ายนิดเดียว มีแค่สร้าง connection กับส่ง command ไป execute แค่นี้เอง


ตัวอย่างการสร้าง Connection (ควรประกาศเป็น Global นะ จะได้ไม่ต้องเขียนซ้ำอีก)
Private AccessConnection As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\AccessDatabase.mdb")

ตัวอย่างการสร้าง Insert Command
Dim AccessCommandString As String = "Insert Into [MyTable] ([ID], [Data]) Values (@ID, @Data)"
Dim AccessCommand As OleDbCommand = New OleDbCommand(AccessCommandString, AccessConnection)

'ป้อน parameter ให้ command
AccessCommand.ParaMeters.Add("@ID", OleDbType.Integer).Value = CInt(txtID.Text)
AccessCommand.ParaMeters.Add("@Data", OleDbType.VarChar).Value = txtData.Text

ตัวอย่างการ Execute Command
 AccessConnection.Open()
AccessCommand.ExecuteNonQuery()
AccessConnection.Close()

Date : 2010-02-04 10:54:02 By : tungman
 


 

No. 51



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



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


สุดยอดครับพี่ tungman

ส่วนเจ้าของกระทู้ก็สู้ๆนะครับ

สำคัญๆเลยคือ อย่า Copy Code นะครับ ใช้พิมพ์เองเอา เราจะเข้าใจมากขึ้น
เเละเวลาทำเอาทีละส่วนให้ใช้งานได้ เช่น ถ้าทำ Insert ก็ให้มันเพิ่มลง DB ให้ได้ก่อน เวลาเกิด Error เราจะได้ไปเเก้ไดถูกที่ครับ

ปล. ผมไม่ได้เก่งอะไรนะครับ นักศึกษา เหมือนกัน ทำโปรเจคจบเหมือนกัน ไม่มีใครเก่งตั้งเเต่เเรกหรอกครับ สู้ๆ Fight !!!
Date : 2010-02-04 11:56:06 By : artcode
 


 

No. 52

Guest


พี่ชาย

ไม่ติดตรงนั้นแล้ว
แต่กด Save แล้ว มันไม่ลงฐาน อ่ะค่ะ
Date : 2010-02-04 13:40:23 By : ยัยใบบ้า
 


 

No. 53

Guest


Code
[code][/code]Code (VB.NET)
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Drawing.Printing

Public Class frmSale
Dim Conn As New OleDbConnection(strConn)
Dim connect As New OleDbConnection
Dim da As New OleDbDataAdapter
Dim ds As DataSet = New DataSet
Dim dt As DataTable
Dim tr As SqlTransaction
Dim bs As BindingSource = New BindingSource()

Dim commandUnit As SqlCommand

Dim UseFont As New Font("MS Sans Serif", 10)
Dim prDoc As New PrintDocument
Private prDlg As PrintDialog = New PrintDialog

Dim tmpSumCommission As Double = 0
Dim tmptxtMemId As String = ""
Dim tmptakeid As String = ""


'Dim dtfInfo As DateTimeFormatInfo
Dim tmpNetMeReceived As Single = 0

Dim LastSaleID As String = ""
Dim IsFind As Boolean = False
Dim IsFindMember As Boolean = False
Dim IsFindFood As Boolean = False
Dim ToClose As Boolean = False


Private Sub frmSale_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Maximized

Conn = New OleDbConnection(strConn)
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

With cboTable
.Items.Add("")
'.Items.Add("")
'.Items.Add("")
.SelectedIndex = 0
End With

AutoGeneratetakeid() 'รหัสรันออโต้
lblOrno.Text = tmptakeid

AutoGeneratePayId()
lblPayNo.Text = tmptakeid


lsvFoodList.Columns.Add("รหัสอาหาร", 82, HorizontalAlignment.Center)
lsvFoodList.Columns.Add("รายการอาหาร", 180, HorizontalAlignment.Left)
lsvFoodList.Columns.Add("ราคา/หน่วย", 82, HorizontalAlignment.Center)
lsvFoodList.Columns.Add("จำนวนที่สั่ง", 90, HorizontalAlignment.Center)
lsvFoodList.Columns.Add("รวมเป็นเงิน", 100, HorizontalAlignment.Center)

lsvFoodList.View = View.Details
lsvFoodList.GridLines = True

txtAmount.Text = "1"
lblSalePrice.Text = "0"
lbltotal.Text = "0"

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"

AddHandler prDoc.PrintPage, New PrintPageEventHandler(AddressOf Me.StringToPrint_Print)

prDoc.DocumentName = "ใบเสร็จรับเงิน"
prDlg.Document = prDoc

txtMemId.Focus()
End Sub

Private Sub txtMemId_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtMemId.KeyDown

If txtMemId.Text <> "" Then
If (e.KeyCode = Keys.Enter) Then
Dim sqlMember As String = ""

sqlMember = "SELECT Mem_id, Mem_Name, MemId_Card, Mem_Sex, Mem_Add, Mem_Phone"
sqlMember &= " FROM Member"
sqlMember &= " WHERE (Mem_id='" & txtMemId.Text & "')"

With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

If IsFindMember = True Then
ds.Tables("Member").Clear()
End If

da = New OleDbDataAdapter(sqlMember, Conn)
da.Fill(ds, "Member")

If ds.Tables("Member").Rows.Count <> 0 Then
IsFind = True

txtMemId.Text = CStr(ds.Tables("Member").Rows(0).Item("Mem_Id"))
txtMemName.Text = CStr(ds.Tables("Member").Rows(0).Item("Mem_Name"))
txtMemAdd.Text = CStr(ds.Tables("Member").Rows(0).Item("Mem_Add"))
txtidcard.Text = CStr(ds.Tables("Member").Rows(0).Item("MemId_Card"))
txtphone.Text = CStr(ds.Tables("Member").Rows(0).Item("Mem_Phone"))

'rIsMember = CStr(ds.Tables("Member").Rows(0).Item("IsMember"))

ClearAllMemberData()
lsvFoodList.Items.Clear()

txtFoodId.Focus()

Else
IsFindMember = False
MessageBox.Show("รายชื่อสมาชิกที่คุณระบุ ไม่มี !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)

rMem_Id = ""
rMem_Name = ""
rMemId_Card = ""
rMem_Sex = ""
rMem_Add = ""
rMem_Phone = ""
rDateRegis = "0"
'rIsMember = "1"

txtMemId.Focus()
txtMemId.SelectAll()
End If
End If
End If
End Sub


Private Sub AutoGeneratetakeid() 'รันเลขที่ใบสั่ง
Dim sqlTmp As String = ""
Dim comTmp As OleDbCommand = New OleDbCommand
Dim Tmp As OleDbDataReader

sqlTmp = "SELECT TOP 1 Or_No FROM Sale ORDER BY Or_No DESC"

Conn = New OleDbConnection(strConn)
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

Try
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp
.Connection = Conn
Tmp = .ExecuteReader()

Tmp.Read()

tmptakeid = CStr(Tmp.Item("Or_No"))
tmptakeid = (CInt(tmptakeid) + 1).ToString("00000")
End With
Catch
tmptakeid = "00001"
End Try

'Tmp.Close()
End Sub

Private Sub AutoGeneratePayId() 'รันเลขที่ใบเสร็จ
Dim sqlTmp As String = ""
Dim comTmp As OleDbCommand = New OleDbCommand
Dim Tmp As OleDbDataReader

sqlTmp = "SELECT TOP 1 Pay_No FROM Pay ORDER BY Pay_No DESC"

Conn = New OleDbConnection(strConn)
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

Try
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp
.Connection = Conn
Tmp = .ExecuteReader()

Tmp.Read()

tmptakeid = CStr(Tmp.Item("Pay_No"))
tmptakeid = (CInt(tmptakeid) + 1).ToString("00000")
End With
Catch
tmptakeid = "00001"
End Try

'Tmp.Close()
End Sub

Private Sub btnShowMemberList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowMemberList.Click
Dim fAllMember As New frmMemberList
fAllMember.ShowDialog(Me)

txtMemId.Text = rMem_Id
txtMemName.Text = rMem_Name
txtidcard.Text = rMemId_Card

If rMem_Sex = "ชาย" Then
OptMale.Checked = True
ElseIf rMem_Sex = "หญิง" Then
OptFemale.Checked = True
End If

txtMemAdd.Text = rMem_Add
txtphone.Text = rMem_Phone

txtMemId.Enabled = True
chkNotMember.Checked = False

rMem_Id = ""
rMem_Name = ""
rMemId_Card = ""
rMem_Sex = "0"
rMem_Add = ""
rMem_Phone = ""
rDateRegis = ""

txtFoodId.Focus()
End Sub

Private Sub chkNotMember_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkNotMember.CheckedChanged
If chkNotMember.Checked = True Then

ClearAllMemberData()
AutoGenerateMemberID()

txtMemId.Enabled = False
'txtidcard.Enabled = False
btnShowMemberList.Enabled = False

txtMemName.Text = ""
txtidcard.Text = ""
txtMemAdd.Text = ""
txtphone.Text = ""

rMem_Id = ""
rMem_Name = ""
rMemId_Card = ""
rMem_Sex = "0"
rMem_Add = ""
rMem_Phone = ""
rIsMember = "1"


txtMemName.Focus()
ElseIf chkNotMember.Checked = False Then
txtMemId.Text = ""
txtMemId.Enabled = True
txtMemId.Focus()
txtMemName.Text = ""
btnShowMemberList.Enabled = True

End If

ClearAllFoodData()
lsvFoodList.Items.Clear()

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"
'txtFoodId.Focus()
End Sub

Private Sub AutoGenerateMemberID()
Dim sqlTmp As String = ""
Dim comTmp As OleDbCommand = New OleDbCommand
Dim Tmp As OleDbDataReader
Dim tmpMemberID As Integer = 0

sqlTmp = "SELECT TOP 1 Mem_Id FROM Member ORDER BY Mem_Id DESC"

Conn = New OleDbConnection(strConn)
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

Try
With comTmp
.CommandType = CommandType.Text
.CommandText = sqlTmp
.Connection = Conn
Tmp = .ExecuteReader()

Tmp.Read()

tmpMemberID = CInt(CStr((Tmp.Item("Mem_Id"))))
tmpMemberID = tmpMemberID + 1
txtMemId.Text = tmpMemberID.ToString("0000")

End With
Catch
tmptxtMemId = "0001"
End Try

End Sub

Private Sub ClearAllMemberData()
txtMemId.Text = ""
txtMemName.Text = ""
'cbot.SelectedIndex = 0
OptMale.Checked = True
txtidcard.Text = ""
txtphone.Text = ""
txtMemAdd.Text = ""
End Sub

Private Sub ClearAllFoodData()
txtFoodId.Text = ""
lblTitle.Text = ""
txtAmount.Text = "1"
lblSalePrice.Text = ""
lbltotal.Text = "0"

End Sub

Private Sub btnShowOrderList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowOrderList.Click
If txtMemId.Text = "" Then
MessageBox.Show("กรุณาป้อนข้อมูลลูกค้าก่อน !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemId.Focus()
Exit Sub
End If

Dim fAllFood As New frmOrderFoodList
fAllFood.ShowDialog(Me)

txtFoodId.Text = rFood_Id
lblTitle.Text = rFood_Name
lblSalePrice.Text = rPrice

lbltotal.Text = rFoodCost.ToString()

rFood_Id = ""
rFood_Name = ""
rPrice = ""
rFoodCost = 0


Select Case rIsMember
Case "0"
lbltotal.Text = CStr(rtxtAmount + rPrice)
lbltotal.Text = rTotal.ToString()

End Select

txtAmount.Focus()
End Sub

Private Sub ClearAllData()
txtFoodId.Text = ""
lblTitle.Text = ""
lblSalePrice.Text = ""
txtAmount.Text = "1"

lbltotal.Text = "0"

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"

End Sub

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
lsvFoodList.Items.Clear()
ClearAllFoodData()

lbltotal.Text = "0"

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"

txtFoodId.Focus()
End Sub

Private Sub txtFoodId_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtFoodId.KeyDown
If txtFoodId.Text <> "" Then
If (e.KeyCode = Keys.Enter) Then

If txtFoodId.Text = "" Then
MessageBox.Show("กรุณาป้อนข้อมูลลูกค้าก่อน !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtFoodId.Focus()
Exit Sub
End If

Dim sqlFood As String = ""

sqlFood = "SELECT Food.Food_Id,Food.Food_Name,Food.price,Sale.totle"
sqlFood &= " FROM Food, Sale"
sqlFood &= " WHERE (Food.Food_Id = Sale.Food_Id)"
sqlFood &= " AND (Food.Food_Id='" & txtFoodId.Text & "')"

'sqlFood = "SELECT Food_Id,Food_Name,price "
'sqlFood &= " FROM Food"
'sqlFood &= " WHERE (Food_Id='" & txtFoodId.Text & "')"

If IsFindFood = True Then
ds.Tables("Food").Clear()
End If

da.SelectCommand.CommandText = sqlFood
da.Fill(ds, "Food")

Dim AllDateRent As Integer = 0
If ds.Tables("Food").Rows.Count <> 0 Then
IsFindFood = True

txtFoodId.Text = CStr(ds.Tables("Food").Rows(0).Item("Food_Id"))
lblTitle.Text = CStr(ds.Tables("Food").Rows(0).Item("Food_Name"))
lblSalePrice.Text = CStr(ds.Tables("Food").Rows(0).Item("Price"))
lbltotal.Text = CStr(ds.Tables("Sale").Rows(0).Item("Total"))

txtAmount.Focus()
txtAmount.SelectAll()
Else
IsFindFood = False

MessageBox.Show("ไม่พบรหัสอาหารตามที่คุณระบุ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
ClearAllFoodData()
txtFoodId.Focus()
txtFoodId.SelectAll()
End If
End If
End If
End Sub

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click

If (txtFoodId.Text = "") Or (lblTitle.Text = "") Or (lblSalePrice.Text = "") Or (txtAmount.Text = "") Or (lbltotal.Text = "") Then
txtFoodId.Focus()
Exit Sub
End If


Dim i As Integer = 0
Dim tmpFoodId As String = ""
For i = 0 To lsvFoodList.Items.Count - 1
tmpFoodId = lsvFoodList.Items(i).SubItems(0).Text

If txtFoodId.Text = tmpFoodId Then
MessageBox.Show("คุณเลือกรหัสอาหารซ้ำกัน !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)

txtFoodId.Text = ""
lblTitle.Text = ""
lblSalePrice.Text = ""
txtAmount.Text = "1"
lbltotal.Text = "0"

txtFoodId.Focus()
txtFoodId.SelectAll()
Exit Sub
End If
Next

Dim FoodTotal As Integer = 0
Dim lvi As ListViewItem
FoodTotal = CInt(lblSalePrice.Text) * CInt(txtAmount.Text)



Dim anyData() As String
anyData = New String() { _
txtFoodId.Text, _
lblTitle.Text, _
lblSalePrice.Text, _
txtAmount.Text, _
FoodTotal.ToString("#,##0") _
}

lvi = New ListViewItem(anyData)
lsvFoodList.Items.Add(lvi)


CalculateRent()
ClearAllFoodData()
txtFoodId.Focus()

End Sub

Private Sub lsvFoodList_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lsvFoodList.DoubleClick
Dim i As Integer = 0
For i = 0 To lsvFoodList.SelectedItems.Count - 1
Dim lvi As ListViewItem
lvi = lsvFoodList.SelectedItems(i)
lsvFoodList.Items.Remove(lvi)
Next
CalculateRent()
End Sub

Sub CalculateRent()
Dim i As Integer = 0
Dim tmplblSalePrice As Integer = 0 'ราคา
Dim tmptxtAmount As Integer = 0 'จำนวนที่ขาย
Dim tmplbltotal As Integer = 0 'รวมเป็นเเงิน

Dim tmpSum As Integer = 0 'ผลรวม
Dim tmpDiscount As Integer = 0 'ส้วนลด กรณีเป็นลูกค้า
Dim tmpNet As Integer = 0 'ยอดที่ต้องจ่าย

If rIsMember = "1" Then
rRentRateDiscount = 0
End If


For i = 0 To lsvFoodList.Items.Count - 1
tmptxtAmount = CInt(lsvFoodList.Items(i).SubItems(2).Text)
tmplblSalePrice = CInt(lsvFoodList.Items(i).SubItems(3).Text)
tmplbltotal = CInt(lsvFoodList.Items(i).SubItems(4).Text)

tmpSum = tmpSum + (tmptxtAmount * tmplblSalePrice)
tmpDiscount = tmpDiscount + CInt((tmptxtAmount * tmplblSalePrice) * rRentRateDiscount)
tmpNet = tmpSum - tmpDiscount

Next

lblSumBeforeDiscount.Text = tmpSum.ToString("#,##0.00")
lblDiscount.Text = tmpDiscount.ToString("#,##0.00")
lblNet.Text = tmpNet.ToString("#,##0.00")

End Sub

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If txtMemId.Text = "" Then
MessageBox.Show("กรุณาระบุรหัสลูกค้าด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemId.Focus()
Exit Sub
End If

If chkNotMember.Checked = True Then
If txtMemName.Text = "" Then
MessageBox.Show("กรุณาระบุชื่อลูกค้าด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemName.Focus()
Exit Sub
End If
End If


AutoGeneratetakeid() 'เรียกใช้ซับบูทีนสำหรับสร้างเลขที่ใบสั่งอาหาร (Or_No) อัตโนมัติ
AutoGeneratePayId()

With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

Dim sqlAdd As String = ""
Dim comAdd As OleDbCommand = New OleDbCommand


Try
If MessageBox.Show("คุณต้องการบันทึกรายการอาหารที่สั่ง ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then

'INTERT ข้อมูลในตาราง CusOder

Dim sqlSale As String
sqlSale = "Insert Into [CusOrder] ([Or_No], [Ore_date], [Mem_Id], [Total_Price], [Persent], [Table_No]) " & _
"Values (" & _
"@Or_No, @Ore_date, @Mem_Id, @Total_Price, @Persent, @Table_No" & _
")"

comAdd.Parameters.Add("@Or_No", OleDbType.VarChar).Value = LastSaleID
comAdd.Parameters.Add("@Ore_date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Mem_Id", OleDbType.VarChar).Value = txtMemId.Text
comAdd.Parameters.Add("@Total_Price", OleDbType.VarChar).Value = lbltotal.Text
comAdd.Parameters.Add("@Persent", OleDbType.VarChar).Value = lblDiscount.Text
comAdd.Parameters.Add("@Table_No", OleDbType.VarChar).Value = cboTable.Text
'comAdd.Parameters.Add("@No_Count", OleDbType.VarChar).Value = CDbl(lblSumBeforeDiscount.Text) AutoNumber ไม่ต้อง Insert มันจะเติมให้เอง
'comAdd.ExecuteNonQuery()


With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With


'INTERT ข้อมูลในตาราง Sale


Dim i As Integer = 0
Dim tmpFoodId As String = ""
'Dim sqlFood As String = ""
Dim tmptxtAmount As Integer = 0
Dim tmplbltotal As Integer = 0
Dim tmpAmount As Integer = 0
Dim tmplblSalePrice As Integer = 0
Dim tmpSum As Integer = 0
Dim tmpDiscount As Integer = 0
Dim tmpNet As Integer = 0
Dim tmpRentDate As Date

Dim tmpReturnDate As Date

tmpRentDate = Date.Now

If rIsMember = "1" Then
rRentRateDiscount = 0
End If

Dim sqlFood As String
sqlFood = "Insert Into [Sale] ([Or_No], [Food_Id], [Unit_Price], [Amount], [Total]" & _
"Values (" & _
"@Or_No, @Food_Id, @Unit_Price, @Amount," & _
")"

'Dim comFoos As OleDbCommand = New OleDbCommand(sqlSale, Conn)
comAdd.Parameters.Add("@Or_No", OleDbType.VarChar).Value = LastSaleID
'comAdd.Parameters.Add("@Ore_date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Food_Id", OleDbType.VarChar).Value = txtFoodId.Text
comAdd.Parameters.Add("@Unit_Price", OleDbType.Integer).Value = lblSalePrice.Text
comAdd.Parameters.Add("@Amount", OleDbType.Integer).Value = txtAmount.Text
comAdd.Parameters.Add("@Total", OleDbType.VarChar).Value = lbltotal.Text
'comAdd.Parameters.Add("@No_Count", Integer.VarChar).Value = CDbl(lblSumBeforeDiscount.Text) AutoNumber ไม่ต้อง Insert มันจะเติมให้เอง

For i = 0 To lsvFoodList.Items.Count - 1


tmpFoodId = (lsvFoodList.Items(i).SubItems(0).Text)
tmplblSalePrice = CInt(lsvFoodList.Items(i).SubItems(2).Text)
tmptxtAmount = CInt(lsvFoodList.Items(i).SubItems(3).Text)
tmplbltotal = CInt(lsvFoodList.Items(i).SubItems(4).Text)
'tmpSum = tmpAmount + (tmplblSalePrice * tmpAmount)

sqlSale &= "'," & tmpFoodId & "',"
sqlSale &= "'," & tmplblSalePrice & "',"


tmpReturnDate = tmpRentDate.AddDays(tmplbltotal)

tmpSum = (tmptxtAmount * tmplblSalePrice)
tmpDiscount = CInt(tmpSum * rRentRateDiscount)
tmpNet = tmpSum - tmpDiscount

sqlSale &= tmpNet & ","
sqlSale &= "'0')"


'INTERT ข้อมูลในตาราง Pay
Dim sqlPay As String
sqlPay = "Insert Into [Pay] (Pay_No], [Pay_Date], [Or_No]" & _
"Values (" & _
"@Pay_No, @FPay_Date, @Or_No," & _
")"

'Dim comFoos As OleDbCommand = New OleDbCommand(sqlSale, Conn)
comAdd.Parameters.Add("@Pay_No", OleDbType.VarChar).Value = tmptakeid
comAdd.Parameters.Add("@Pay_Date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Or_No", OleDbType.Integer).Value = lblPayNo.Text
comAdd.Parameters.Add("@Total_Pay", OleDbType.Integer).Value = lblNet.Text


Next

If chkNotMember.Checked = True Then
Dim sqlMem As String = ""
Dim comMember As OleDbCommand = New OleDbCommand

sqlMem = "INSERT INTO Member (Mem_ID,Mem_Name,MemId_Card,"
sqlMem &= " Mem_Sex,Mem_Add,Mem_Phone,DateRegis,IsMembe)"
sqlMem &= " VALUES ('" & txtMemId.Text & "',"
sqlMem &= "'" & txtMemName.Text & "',"
sqlMem &= "'" & txtidcard.Text & "',"

If OptMale.Checked = True Then
sqlMem &= "'=ชาย',"
ElseIf OptFemale.Checked = True Then
sqlMem &= "'หญิง',"
End If

sqlMem &= "'" & txtMemAdd.Text & "',"
sqlMem &= "'" & txtphone.Text & "',"
sqlMem &= "'" & tmpRentDate & "',"
sqlMem &= "'', '1','0')"

With comMember
.CommandType = CommandType.Text
.CommandText = sqlMem
.Connection = Conn
'.ExecuteNonQuery()
End With
End If

MessageBox.Show("บันทึกรายการสั่งอาหารเรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)



If IsInstallPrinter() = True Then
If prDlg.ShowDialog = Windows.Forms.DialogResult.OK Then
prDoc.Print()
End If
Else
MessageBox.Show("กรุณาติดตั้งเครื่อง Printer ก่อนสั่งพิมพ์เอกสาร", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

ClearAllMemberData()
ClearAllFoodData()
lsvFoodList.Items.Clear()

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"

chkNotMember.Checked = False
'cboMemberType.SelectedIndex = 0
txtMemId.Enabled = True
txtMemId.Focus()

End If
Catch ErrProcess As Exception
MessageBox.Show("ไม่สามารถบันทึกรายการสั่งอาหารได้ เนื่องจาก " & ErrProcess.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
tr.Commit()
End Try
End Sub


Private Function IsInstallPrinter() As Boolean
IsInstallPrinter = False
If prDoc.PrinterSettings.PrinterName = "<no default printer>" Then
IsInstallPrinter = False
Else
IsInstallPrinter = True
End If
End Function

Private Sub StringToPrint_Print(ByVal sender As Object, ByVal e As PrintPageEventArgs)

End Sub

Private Sub AnyString(ByVal g As Graphics, ByVal printString As String, ByVal xPos As Integer, ByVal yPos As Integer)

End Sub


End Class



Save แล้ว ไม่ลงฐาน ทำผิดอีกแล้วมั้ง
Date : 2010-02-04 17:35:24 By : ยัยใบบ้า
 


 

No. 54



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



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


คุณ Tungman ช่วยได้เยอะค่ะ

คือกวางก็ทำโปรเจคจบเหมือนกัน เช่นเดียวกับ คุณ artCode ก็จริง ๆ เป็นเพื่อนในคณะเดียวกันนี่แหละค่ะ

พอดี คุณ artCode บอกว่า ที่นี่ใจดี เพราะตอนแรกกวางไม่กล้าโพสถามที่นี่ซักเท่าไหร่...แต่เมื่อลองถามดู...ปรากฏว่า

สุดยอดค่ะ โปรเจคผ่านจุดที่ติดมาตลอดเพราะ คุณ Tungman นี่แหละ ต้องขอขอบคุณอีกครั้งนะคะ ขอบคุณมาก ๆ ด้วย

แล้วถามที่อ่านมา เจ้าของกระทู้ ลอง debug ดูนะคะ อักษรเพียงแค่ตัวเดียว หรือตำแหน่งคำสั่งผิดแค่บรรทัดเดียว มันอาจจะทำให้โปรแกรม error อยู่อย่างนั้น แก้ไม่ได้แน่นอน ลองพยายามจัดลำดับสิ่งที่ต้องทำให้ใน หน้า app นั้น

รวมถึงการ copy code มาถาม กวางว่า เอาเฉพาะส่วนที่มีปัญหาดีกว่า เช่น ถ้ามีปัญหาเรื่องการ save ก็เอาส่วนที่เกี่ยวกับการ save มาถามพี่ ๆ เค้า เนื่องจากมันจะดูง่ายกว่า copy มาทั้ง form นะคะ

อันนี้แนะนำนะคะ เพราะตัวกวางเองก็ไม่ได้เก่งอะไร แต่อยากช่วย พอมาลองไล่อ่าน Code ของคุณดู...ไม่ไหวค่ะ ลายตามาก ๆ อันนี้แนะนำเพื่อให้พี่ ๆ เค้าได้ช่วยแบบสบายตา

เรื่องแก้ปัญหานี้ได้ แล้วไปเจอปัญหาต่อไปมีทุกคนค่ะ กวางยังเป็น เจอจนปวดหัว เครียด ร้องไห้ แต่ต้องลองพยายามด้วยตัวเองอีกสักครั้ง...สู้ ๆ อย่าท้อค่ะ เพราะกวาง Coding เสร็จแล้วใช้เวลา 1 เดือน แต่ก็มีปัญหาต้องรื้อทำใหม่ในบางส่วน ท้อค่ะ แต่ไม่ถอย เครียดบ้างอะไรบ้าง...

ป.ล.คุณเจ้าของกระทู้...ยังไงให้เกียรติพี่ ๆ เค้านิดนึง...พี่เค้าใจดีนะคะ งานก็ต้องทำ แล้วยังมาช่วยพวกเราอีก เพราะกวางอ่านบางประโยคแล้ว...ดูไม่เหมาะเท่าไหร่อะคะ หวังว่าไม่โกรธกันน้า เพราะเรายังต้องขอความช่วยเหลือพี่ ๆ ที่นี่อีก จริงมั้ยค่ะ ใจเย็น ๆ เน้อ สู้ ๆ
Date : 2010-02-04 18:22:31 By : Kwang196
 


 

No. 55

Guest


ขอบคุณ ค่ะ
แต่ เรื่อง ก้อ ขอบคุณ ทุก ๆ คน นั่น แหล่ะค่ะ

แต่ เรื่อง ที่ ใช้คำพุด อ่ะค่ะ ก้อ เป็นคน พุด เป็น แต่ แบบนี้ ตรงเกิน ไป หรือ ไม่ดียังๆง ก็ขอโทษ แล้ว กัน นะค่ะ

Code
[code][/code]Code (VB.NET)
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If txtMemId.Text = "" Then
MessageBox.Show("กรุณาระบุรหัสลูกค้าด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemId.Focus()
Exit Sub
End If

If chkNotMember.Checked = True Then
If txtMemName.Text = "" Then
MessageBox.Show("กรุณาระบุชื่อลูกค้าด้วยค่ะ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtMemName.Focus()
Exit Sub
End If
End If


AutoGeneratetakeid() 'เรียกใช้ซับบูทีนสำหรับสร้างเลขที่ใบสั่งอาหาร (Or_No) อัตโนมัติ
AutoGeneratePayId()

With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

Dim sqlAdd As String = ""
Dim comAdd As OleDbCommand = New OleDbCommand
Dim cmdAdd As OleDbCommand = New OleDbCommand
'Dim AccessCommand As OleDbDataReader

Try
If MessageBox.Show("คุณต้องการบันทึกรายการอาหารที่สั่ง ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then


'INTERT ข้อมูลในตาราง CusOder

Dim sqlSale As String
sqlSale = "Insert Into [CusOrder] ([Or_No], [Ore_date], [Mem_Id], [Total_Price], [Persent], [Table_No]) " & _
"Values (" & _
"@Or_No, @Ore_date, @Mem_Id, @Total_Price, @Persent, @Table_No" & _
")"

comAdd.Parameters.Add("@Or_No", OleDbType.VarChar).Value = LastSaleID
comAdd.Parameters.Add("@Ore_date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Mem_Id", OleDbType.VarChar).Value = txtMemId.Text
comAdd.Parameters.Add("@Total_Price", OleDbType.VarChar).Value = lbltotal.Text
comAdd.Parameters.Add("@Persent", OleDbType.VarChar).Value = lblDiscount.Text
comAdd.Parameters.Add("@Table_No", OleDbType.VarChar).Value = cboTable.Text
'comAdd.Parameters.Add("@No_Count", OleDbType.VarChar).Value = CDbl(lblSumBeforeDiscount.Text) AutoNumber ไม่ต้อง Insert มันจะเติมให้เอง
'comAdd.ExecuteNonQuery()

Conn = New OleDbConnection(strConn)
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With

With comAdd
.CommandText = sqlSale
'.ExecuteNonQuery()
End With


'INTERT ข้อมูลในตาราง Sale


Dim i As Integer = 0
Dim tmpFoodId As String = ""
'Dim sqlFood As String = ""
Dim tmptxtAmount As Integer = 0
Dim tmplbltotal As Integer = 0
Dim tmpAmount As Integer = 0
Dim tmplblSalePrice As Integer = 0
Dim tmpSum As Integer = 0
Dim tmpDiscount As Integer = 0
Dim tmpNet As Integer = 0
Dim tmpRentDate As Date

Dim tmpReturnDate As Date

tmpRentDate = Date.Now

If rIsMember = "1" Then
rRentRateDiscount = 0
End If

Dim sqlFood As String
sqlFood = "Insert Into [Sale] ([Or_No], [Food_Id], [Unit_Price], [Amount], [Total]" & _
"Values (" & _
"@Or_No, @Food_Id, @Unit_Price, @Amount," & _
")"

'Dim comFoos As OleDbCommand = New OleDbCommand(sqlSale, Conn)
comAdd.Parameters.Add("@Or_No", OleDbType.VarChar).Value = LastSaleID
'comAdd.Parameters.Add("@Ore_date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Food_Id", OleDbType.VarChar).Value = txtFoodId.Text
comAdd.Parameters.Add("@Unit_Price", OleDbType.Integer).Value = lblSalePrice.Text
comAdd.Parameters.Add("@Amount", OleDbType.Integer).Value = txtAmount.Text
comAdd.Parameters.Add("@Total", OleDbType.VarChar).Value = lbltotal.Text
'comAdd.Parameters.Add("@No_Count", Integer.VarChar).Value = CDbl(lblSumBeforeDiscount.Text) AutoNumber ไม่ต้อง Insert มันจะเติมให้เอง

For i = 0 To lsvFoodList.Items.Count - 1


tmpFoodId = (lsvFoodList.Items(i).SubItems(0).Text)
tmplblSalePrice = CInt(lsvFoodList.Items(i).SubItems(2).Text)
tmptxtAmount = CInt(lsvFoodList.Items(i).SubItems(3).Text)
tmplbltotal = CInt(lsvFoodList.Items(i).SubItems(4).Text)
'tmpSum = tmpAmount + (tmplblSalePrice * tmpAmount)

sqlSale &= "'," & tmpFoodId & "',"
sqlSale &= "'," & tmplblSalePrice & "',"


tmpReturnDate = tmpRentDate.AddDays(tmplbltotal)

tmpSum = (tmptxtAmount * tmplblSalePrice)
tmpDiscount = CInt(tmpSum * rRentRateDiscount)
tmpNet = tmpSum - tmpDiscount

sqlSale &= tmpNet & ","
sqlSale &= "'0')"


'INTERT ข้อมูลในตาราง Pay
Dim sqlPay As String
sqlPay = "Insert Into [Pay] (Pay_No], [Pay_Date], [Or_No]" & _
"Values (" & _
"@Pay_No, @FPay_Date, @Or_No," & _
")"

'Dim comFoos As OleDbCommand = New OleDbCommand(sqlSale, Conn)
comAdd.Parameters.Add("@Pay_No", OleDbType.VarChar).Value = tmptakeid
comAdd.Parameters.Add("@Pay_Date", OleDbType.Date).Value = dtpAdmitDate.Value 'DatePicker เป็น Date อยู่แล้วไม่ต้อง Convert
comAdd.Parameters.Add("@Or_No", OleDbType.Integer).Value = lblPayNo.Text
comAdd.Parameters.Add("@Total_Pay", OleDbType.Integer).Value = lblNet.Text


Next

If chkNotMember.Checked = True Then
Dim sqlMem As String = ""
Dim comMember As OleDbCommand = New OleDbCommand

sqlMem = "INSERT INTO Member (Mem_ID,Mem_Name,MemId_Card,"
sqlMem &= " Mem_Sex,Mem_Add,Mem_Phone,DateRegis,IsMembe)"
sqlMem &= " VALUES ('" & txtMemId.Text & "',"
sqlMem &= "'" & txtMemName.Text & "',"
sqlMem &= "'" & txtidcard.Text & "',"

If OptMale.Checked = True Then
sqlMem &= "'=ชาย',"
ElseIf OptFemale.Checked = True Then
sqlMem &= "'หญิง',"
End If

sqlMem &= "'" & txtMemAdd.Text & "',"
sqlMem &= "'" & txtphone.Text & "',"
sqlMem &= "'" & tmpRentDate & "',"
sqlMem &= "'', '1','0')"

With comMember
'.CommandText = sqlMem
'.ExecuteNonQuery()
.CommandType = CommandType.Text
.CommandText = sqlMem
.Connection = Conn
.ExecuteNonQuery()
End With

End If

MessageBox.Show("บันทึกรายการสั่งอาหารเรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)

If IsInstallPrinter() = True Then
If prDlg.ShowDialog = Windows.Forms.DialogResult.OK Then
prDoc.Print()
End If
Else
MessageBox.Show("กรุณาติดตั้งเครื่อง Printer ก่อนสั่งพิมพ์เอกสาร", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

ClearAllMemberData()
ClearAllFoodData()
lsvFoodList.Items.Clear()

lblSumBeforeDiscount.Text = "0"
lblDiscount.Text = "0"
lblNet.Text = "0"

chkNotMember.Checked = False
'cboMemberType.SelectedIndex = 0
txtMemId.Enabled = True
txtMemId.Focus()

End If
Catch ErrProcess As Exception
MessageBox.Show("ไม่สามารถบันทึกรายการสั่งอาหารได้ เนื่องจาก " & ErrProcess.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
Conn.Close()
End Try
End Sub
Date : 2010-02-04 18:35:14 By : ยัยใบบ้า
 


 

No. 56

Guest


3333

บันทึกข้อมูลได้แค่ ครั้งเดียวเอง ค่ะ
พอครั้งที่ 2 ก้อเออเล่อแบบนี้ เลย

ไม่ทราบว่ามันเป็นอะไร ค่ะ พี่
Date : 2010-02-05 13:03:44 By : ยัยใบบ้า
 


 

No. 57

Guest


ที่เป็น Error ล่าสุดเป็นที่ PrimaryKey ซ้ำครับ ให้หาทาง Gen ใหม่อย่าให้ซ้ำก็หายแล้วครับ แต่เท่าที่ดูภาพรวม ๆ น้องยังไม่เข้าใจเท่าที่ควรเลยทำให้น้องคิดต่อไปลำบาก คือ
1. การกำหนดชื่อฟิลด์ในตารางทีน้องกำหนดให้มีช่องว่าง พอนำไปเข้าโค้ดใน VB ก็เลยทำให้ผพลาดได้ง่าย ทางที่ดีอย่าให้มีช่องว่างให้ติดกันไปเลย
2. การเขียนเชื่อมต่อกับ Database
3. การเขียน StatmentSQL ที่น้องเขียนมีคนบอกน้องทั้งสองแบบครับ
3.1 แบบที่ให้ใส่ Insert Into ตรง ๆ
3.2 แบบการส่งแบบ Parameter ครับ แบบนี้จะชัวร์กว่า เพราะต้องกำหนด Datatype ให้ตรงกับฐานข้อมูล

แบบที่ 3.2 จะแม่นยำกว่าและง่ายกว่าครับ

ถ้าอยากได้ความรู้ตรงไหนก็ให้ E-Mail มาครับ จะได้สอนให้เข้าใจดีกว่าไปจำเอาครับ รุ่นพี่มีตัวอย่างให้เพื่อให้เรานำไปคิดให้เข้าใจแต่ไม่ได้ให้ท่องจำแล้วเจอของใหม่ทำไม่ได้ก็ต้องมาถามใหม่อีกครับ ไม่อยากให้เป็นอย่างนั้น
Date : 2010-05-29 01:47:38 By : พี่เป้
 


   

ค้นหาข้อมูล


   
 

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