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 > ติดอยู่ 4 เรื่อง โปรแกรมก็จำสำเร็จ ขอความช่วยเหลือหน่อยค่ะ vb.net นะคะ รายละเอียดสุดๆ ด้านในเลยค่ะ



 

ติดอยู่ 4 เรื่อง โปรแกรมก็จำสำเร็จ ขอความช่วยเหลือหน่อยค่ะ vb.net นะคะ รายละเอียดสุดๆ ด้านในเลยค่ะ

 



Topic : 057647



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



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




ตอนนี้โปรแกรมเสร็จเรียบร้อยแล้วค่ะ ติดอยู่แค่ 4 เรื่อง (จาก 2 เพิ่มเป็น 4 อิอิ ) เป็น bug นิดหน่อยค่ะ ตอนแรกๆคิดว่ามันไม่เป็นอะไร แต่ก็เป็น

เรื่องที่ 1 นะคะ (จะอธิบายแบบละเอียดสุดๆ นะคะ) เป็นเรื่องของ การตรวจสอบ รหัส ซ้ำ เรื่องก็มีอยู่ว่า ถ้าตรวจสอบ text ที่เป็นตัวหนังสือ มันจะตรวจสอบได้ค่ะ แต่พอตรวจสอบค่าที่เป็นตัวเลข มันดันตรวจสอบไม่ได้ คิดว่า โค้ด ตรงไหนผิดสักแห่ง แต่เพราะความรู้ยังน้อย + กับ เพิ่งเขียนโปรแกรมได้ 2 สัปดาห์ เลยไม่เข้าใจค่ะ อยากจะขอความช่วยเหลือหน่อยค่ะ

ภาพหน้าตา โปรแกรมค่ะ
l1

พอรันโปรแกรมแล้วคีย์ข้อมูลเสร็จเรียบร้อย กด เพิ่ม มันก็จะ error แบบนี้
l2

l3

นี่โค้ดค่ะ
Private Sub Addbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Addbtt.Click
Dim intnumrow As Integer
Dim sqlstr As String = "SELECT Count(*) FROM Employee WHERE IDOfficer = '" & Me.IDOftxt.Text & "'"
cmd = New OleDbCommand(sqlstr, con)
intnumrow = cmd.ExecuteScalar()
If intnumrow > 0 Then

MsgBox("รหัสซ้ำกรุณากรอกใหม่")
Return
Else
Dim sql As String = "INSERT INTO Employee(StatusEmp, EmpFrontName, IDOfficer, " & _
"EmpLastName, EmpNickName, EmpPosition, EmpJob, EmpBeginDate, EmpSalary) " & _
"VALUES(@Status, @Fname, @IDO, @Lname, @Nname, @Pos, @Job, @BDate, @Salary) "

cmd = New OleDbCommand(sql, con)

cmd.Parameters.AddWithValue("Status", StatusBox.SelectedItem)
cmd.Parameters.AddWithValue("Fname", namebox.Text)
cmd.Parameters.AddWithValue("IDO", IDOftxt.Text)
cmd.Parameters.AddWithValue("Lname", name1.Text)
cmd.Parameters.AddWithValue("Nname", name2.Text)
cmd.Parameters.AddWithValue("Pos", positioning.Text)
cmd.Parameters.AddWithValue("Job", duty.Text)
cmd.Parameters.AddWithValue("Bdate", Bdate.Text)
cmd.Parameters.AddWithValue("Salary", Money.Text)

Dim affect As Integer = cmd.ExecuteNonQuery()

If (affect < 1) Then
MsgBox("เกิดข้อผิดพลาด" & vbNewLine & "ไม่เพิ่มข้อมูลได้")
Else
MsgBox("เพิ่มข้อมูลเรียบร้อยแล้ว")
End If
ClearBindings()
EmpInfo()
If (namebox.Items.Count > 0) Then
namebox.SelectedIndex = 0
End If
End If
End Sub


แต่ถ้าเราเปลี่ยนไปเช็คค่าซ้ำ ที่ นามสกุล หรือ ชื่อเล่น มันจะเช็คได้ค่ะ
l4

นี่โค้ด
Dim sqlstr As String = "SELECT Count(*) FROM Employee WHERE EmpLastName = '" & Me.name1.Text & "'"

ปล. เปลี่ยนแค่ ที่เดียวค่ะ
ที่เช็คไม่ได้ก็คือ รหัส กับ ค่าแรง

ก็เลยคิดว่าน่าจะเป็นเพราะโค้ดนี้มันเช็คค่าที่เป็นตัวเลขไม่ได้ (ในฐานข้อมูล access กำหนดไว้ให้ใส่ค่า ตัวเลข ค่ะ)

รบกวนขอความช่วยเหลือด้วยนะคะ

ต่อมาเรื่องที่ 2 ทำไม่ได้มาเป็นวันที่ 11 ก็คือ เรื่อง combobox ค่ะ ทำให้ combobox อ่านค่า เป็นชื่อพนักงาน ในฐานข้อมูล แต่เวลาเลือกมันกลับเลือกค่าซ้ำไม่ได้ ซึ่งในความเป็นจริงแล้ว พนักงาน จะต้องมีชื่อซ้ำกันได้ค่ะ

หน้าตาโปรแกรมจะเหมือนกับ เรื่องที่ 1 นะคะ

ถ้าเลือกที่ พนักงานชื่อ บี บรรทัดแรก
l5

สังเกต รหัส จะเท่ากับ 32 ค่ะ
l6

แล้วลองเลือก พนักงานชื่อ บี เหมือนเดิม แต่เป็น บรรทัดที่ 2 นะคะ
l7

สังเกตที่รหัส ก็ยังเท่ากับ 32 เหมือนเดิม ค่ะT_T
l8

ทีนี่เราลองมาเลือกที่ พนักงานชื่อ บี9 ดูบ้าง
l9

ปรากฏว่า...รหัสเปลี่ยน!!!! มันเป็นปกติค่ะ *-*
l10

ก็เลยสรุปได้ว่า มันเลือก ชื่อ ซ้ำไม่ได้ ถ้าเลือกชื่อซ้ำมันจะไปเลือก บรรทัดที่อยู่บนสุด เสมอค่ะ

รบกวนขอความช่วยเหลือหน่อยนะคะ

นี่เป็นโค้ดทั้งหมดค่ะ (เอาไปเท่าที่คิดว่าเกี่ยวข้องนะคะ(เกือบหมด อิอิ))

Imports System.Data
Imports System.Data.OleDb
Imports System.IO

Public Class DataEmp
Private con As New OleDbConnection(conn)
Private data As DataSet
Private cmd As OleDbCommand
Private adapter As OleDbDataAdapter
Private row_count As Integer = 0
Private _position As Integer = 0

Private Sub DataEmp_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
con.Open()
EmpInfo()

If (namebox.Items.Count > 0) Then
namebox.SelectedIndex = 0
End If

Editbtt.Enabled = False
End Sub

Private Sub namebox_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles namebox.SelectedIndexChanged

empdetial()


End Sub

Private Sub EmpInfo()
'Dim sql As String = "SELECT DISTINCT(EmpFrontName) FROM Employee" ตรวจสอบค่าซ้ำ
Dim sql As String = "SELECT * FROM Employee"
cmd = New OleDbCommand(sql, con)

Dim adapter = New OleDbDataAdapter(cmd)

data = New DataSet()

adapter.Fill(data, "Emp")
namebox.Items.Clear()
For i = 0 To data.Tables("emp").Rows.Count - 1
namebox.Items.Add(data.Tables("emp").Rows(i)("EmpFrontName").ToString())
Next

End Sub

Private Sub empdetial()
Dim sql As String = "SELECT * FROM Employee WHERE EmpFrontName = @Fname"

cmd = New OleDbCommand(sql, con)
cmd.Parameters.AddWithValue("Fname", namebox.SelectedItem)
adapter = New OleDbDataAdapter(cmd)

data.Clear()
adapter.Fill(data, "Fnameinfo")

EmpID.Text = data.Tables("Fnameinfo").Rows(0)("IDEmp")
name1.Text = data.Tables("Fnameinfo").Rows(0)("EmpLastName")
name2.Text = data.Tables("Fnameinfo").Rows(0)("EmpNickName")
positioning.Text = data.Tables("Fnameinfo").Rows(0)("EmpPosition")
duty.Text = data.Tables("Fnameinfo").Rows(0)("EmpJob")
Bdate.Text = data.Tables("Fnameinfo").Rows(0)("EmpBeginDate")
Money.Text = data.Tables("Fnameinfo").Rows(0)("EmpSalary")
StatusBox.Text = data.Tables("Fnameinfo").Rows(0)("StatusEmp")
IDOftxt.Text = data.Tables("Fnameinfo").Rows(0)("IDOfficer")

End Sub

ต่อไปเป็นเรื่องที่ 3 ค่ะ เรื่องนี้ก็เป็นเรื่องที่ค้างมาได้ประมาณ 5 วันแล้วค่ะ เรื่องของการลบแถวใน Datagrid

อันนี้เป็นหน้าตาโปรแกรมค่ะ
h1

พอรันแล้วจะ ได้แบบนี้ค่ะ
h2

จะอธิบายละนะคะ ข้อมูลที่โชว์ใน Datagrid จะแสดงข้อมูล 2 ตาราง รวมกัน (ซึ่งเราคิดว่ามันอาจจะผิดตรงนี้)
1. ข้อมูลของตาราง พนักงาน ซึ่งมี IDEmp เป็น primary key ค่ะ
2. ข้อมูลของรายละเอียด พนักงาน ซึ่งจะมี IDpayroll เป็น primary Key ค่ะ
3. ทั้ง 2 ตารางจะผูกข้อมูลไว้กับ รหัสพนักงาน ก็คือ IDOfficer ค่ะ

ซึ่งเราต้องการลบแถว ออกไป ในกรณีที่ต้องการลบทิ้ง เนื่องจากใส่ข้อมูลผิดค่ะ แต่ที่นี่เวลาเราจะลบ เราก็ต้องลบแต่ IDpayroll ซึ่งเป็นรายละเอียดที่กรอกลงไปในแต่ละวันใช่ไหมคะ เพราะถ้าไปลบ IDEmp ซึ่งเป็นไอดีพนักงาน ข้อมูลพนักงานก็จะหายไปเลย(เข้าใจถูกไหม) แต่ที่นี่ รู้สึกโค้ดมันจะไม่ยอมลบให้ค่ะ

นี่โค้ดค่ะทั้งหมดค่ะ
Public Class Manageform
Private con As New OleDbConnection(conn)
Private data As DataSet
Private cmd As OleDbCommand

Private Sub ShowData()
con.Open()
Dim sql As String = "SELECT * From EmpPay"
Dim cmd As New OleDbCommand(sql, con)
Dim apater As New OleDbDataAdapter(cmd)
Dim data As New DataSet()
apater.Fill(data, "pay")

DataGridView1.DataSource = data.Tables("pay")
con.Close()

End Sub

Private Sub Manageform_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
con.Close()

End Sub

Private Sub Manageform_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ShowData()
End Sub

Private Sub finebtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles finebtt.Click
con.Open()


If finetxt.Text = "" Then
MsgBox("กรุณากรอกข้อมูลที่ต้องการค้นหา", MsgBoxStyle.Information)
ElseIf finetxt.Text <> "" Then
Dim sql As String = "SELECT * FROM EmpPay WHERE (IDOfficer Like '%" & finetxt.Text & "%' OR EmpFrontName Like '%" & finetxt.Text & "%' OR EmpNickName Like '%" & finetxt.Text & "%' OR EmpLastName Like '%" & finetxt.Text & "%')"
Dim da As New OleDbDataAdapter(sql, con)
data = New DataSet()
da.Fill(data, "emp")
DataGridView1.DataSource = data.Tables("emp")

Else

MsgBox("ไม่มีข้อมูลที่ต้องการค้นหา", MsgBoxStyle.Information)

End If
con.Close()
End Sub

Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
con.Open()
If MsgBox("ต้องการลบแถวที่เลือกใช่หรือไม่", MsgBoxStyle.OkCancel, MsgBoxResult.Cancel) Then
Return

End If
Dim ID As String = DataGridView1.SelectedRows.Item(0).Cells(0).Value
'Dim ID As String = Me.DataGridView1.CurrentRow.Index
Dim sql As String = "DELETE * FROM EmpPay WHERE IDpayday = @IDpay"
Dim cmd As New OleDbCommand(sql, con)
cmd.Parameters.AddWithValue("IDpay", DataGridView1.SelectedRows)
cmd.ExecuteNonQuery()

ShowData()
Delbtt.Enabled = False
con.Close()
End Sub

Private Sub DataGridView1_RowStateChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowStateChangedEventArgs) Handles DataGridView1.RowStateChanged
If (DataGridView1.SelectedRows.Count > 0) Then
Delbtt.Enabled = True
Else
Delbtt.Enabled = False
End If
End Sub
End Class

ซึ่งพอเราคลิ๊กที่แถวของ datagrid แล้วกด ลบข้อมูล จะขึ้น messagebox ว่า ต้องการลบหรือไม่ พอกด ok ไป มันก็ไม่ทำอะไรเลยน่ะค่ะ
เศร้าT_T

กด ok
h3

นิ่งเลย
h4

ตอนแรกก็คิดว่าสงสัยมันลบไปแล้ว แต่มันไม่แสดง แต่พอรันใหม่ มันก็อยู่เหมือนเดิมค่ะ

ขอความช่วยเหลือด้วยค่ะ

ต่อไปเรื่องที่ 4 เรื่องสุดท้ายค่ะ เป็นเรื่องที่สงสัยมานาน ตอนแรกๆ อยากลองทำเองดู แต่พอทำจริงๆ ดันไม่รู้จะเริ่มต้นยังไง

อันนี้ยังไม่ได้ทำนะคะ มาขอโค้ด เฉยๆค่ะ

เรื่องก็มีอยู่ว่า เวลาเราเพิ่มข้อมูลน่ะค่ะ เราต้องการให้ ID (ที่เป็น Autonumber) รันตามที่เราต้องการได้ไหมคะ เช่น ขึ้นต้นด้วย 0001 แล้วรันต่อไปเรื่อยๆ จนถึง 9000 ที่นี่เวลาเราลบข้อมูล สมมติ เราลบข้อมูลที่ 5000 - 6000 นะ เวลาเรามาเพิ่มข้อมูลก็อยากให้มัน ไปแทนที่ข้อมูลที่ 5000 -6000 น่ะค่ะ แต่ปัจจุบัน มันต่อไปเลย 9001 ไปเรื่อยๆ ข้อมูลที่ 5000 - 6000 มันก็จะเป็นค่าว่างน่ะค่ะ ตอนนี้ตั้งแต่ทำโปรแกรมมา ID ต้นๆ ถูกลบไปหมดแล้ว มีวิธี Format มันใหม่ไหมคะ

คำถามสุดท้ายไม่รู้ว่างงหรือเปล่า ถ้าต้องการภาพก็บอกนะคะ จะพยายาม วาดภาพให้

เรื่องทั้งหมดนี้เป็นเรื่องที่เราได้ลองทำมาแล้ว หลายๆวันค่ะ แต่ก็จนปัญญาจริงๆ จึงต้องมาขอร้องให้ทุกคนที่ใจดี ช่วยหน่อยค่ะ ถ้าโปรแกรมเสร็จแล้วจะไม่ลืมพระคุณเลย แล้วถ้าเขียนโปรแกรมเก่งแล้ว ก็จะมาคอยช่วยคนที่เพิ่งเริ่มเขียนโปรแกรมต่อไปค่ะ

ปล. ยกเว้นเรื่องสุดท้ายนะคะ ยังไม่ได้ลอง .... คือ ไม่ใช่ว่า ไม่ลองคิดดูก่อนนะคะ แต่ มันคิดไม่ออกว่าจะเริ่มต้นยังไงน่ะค่ะ เอาเป็นว่าพยายามแล้วละกัน เน่อะ


ขอบพระคุณทุกคนล่วงหน้าค่ะ



Tag : .NET, Ms Access, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-03-22 15:55:30 By : mayapopy View : 3374 Reply : 44
 

 

No. 1



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



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


เรื่องที่ 1
Dim sqlstr As String = "SELECT Count(*) FROM Employee WHERE IDOfficer = '" & Me.IDOftxt.Text & "'"

IDOfficer เป็น Number รึเปล่าครับ
ลองแก้เป็นแบบนี้ดู
Dim sqlstr As String = "SELECT Count(*) FROM Employee WHERE IDOfficer = " & Me.IDOftxt.Text






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:01:19 By : หางอึ่ง
 


 

No. 2



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



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


เรื่องที่ 3 ลองดู

Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
  con.Open()
  If MsgBox("ต้องการลบแถวที่เลือกใช่หรือไม่", MsgBoxStyle.OkCancel, MsgBoxResult.Cancel) Then
    Return

  End If

  Dim ID As String = DataGridView1.SelectedRows.Item(0).Cells(0).Value
  'Dim ID As String = Me.DataGridView1.CurrentRow.Index
  Dim sql As String = "DELETE * FROM EmpPay WHERE IDpayday = @IDpay"
  cmd.Parameters.AddWithValue("IDpay", 0)
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(0).Value   ' กรณีที่ IDPay อยู่ Column แรกของ Grid นะ (หมายเหตุ: ปกติผมไม่นิยมอ้างอิงถึงข้อมูลด้วยวิธีนี้นะ เพราะมันจะยึดติดเกินไปว่าต้องวาง IDPay เป็น Column แรก)
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:22:00 By : หางอึ่ง
 

 

No. 3



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



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


ใช่ค่ะเป็น number ค่ะ

เดี๋ยวจะลองไปแก้ตามที่บอกนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:25:26 By : mayapopy
 


 

No. 4



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



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


แก้ได้แล้วค่ะ

e1

เย้ๆๆๆ

เรื่องที่ 1 แก้ได้แล้ว

ขอบคุณ คุณ หางอึ่ง มากๆเลยนะคะ ไม่รู้จะตอบแทนยังไงดี

เดี๋ยวไปลองแก้เรื่องที่ 3 ต่อก่อนนะคะ

ขอบคุณมากๆค่า

ปล. ไม่คิดว่ามันจะแก้ง่าย ขนาดนี้ -*-
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:27:34 By : mayapopy
 


 

No. 5



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



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


เรื่องที่ 4
โดยมาตราฐานการเขียนโปรแกรมทั่วไป (อย่างโปรแกรม Payroll นี้ก็ด้วย)
1. เราจะไม่ลิมิต Primay Key ครับว่ามันจะวิ่งไปถึงไหน
2. เราจะไม่เอา Primary Key ที่ถูกลบไปแล้วเอามาใช้งานใหม่

อยากให้คุณจินตนาการ
มีตาราง 2 ตาราง
1. ตารางข้อมูลพนักงาน (Primary Key คือ EmpID)
2. ตารางข้อมูลการจ่ายเงินเดือน (ผูกกับตารางข้อมูลพนักงานด้วย EmpID)
สมมุติ EmpID 1000 ชื่อสมศักดิ์ แล้วระหว่างที่ทำงานมีจ่ายเงินเดือนให้สมศักดิ์ (มีการทำรายการใน ตารางจ่ายเงินเดือน)
แล้ว EmpID 1000 ถูกลบ แล้วถูกนำไปใช้ใหม่ด้วย สมชาย
คุณคิดว่าจะเกิดอะไรขึ้น ถ้าเอาข้อมูลประเภทนี้มาทำรายงาน
โดยเฉพาะรายงาน ภาษีหัก ณ ที่จ่าย

เพราะฉะนั้นคุณอย่าพยายาม Recycle Primary Key เลย
อยากทำเพื่อลองวิชาน่ะได้ แต่ผมไม่ชมว่าเก่งนะครับถ้าเอาวิธีนี้มาใช้งานกับโปรแกรมจริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:32:29 By : หางอึ่ง
 


 

No. 6



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



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


เรื่องที่ 3 ลองแล้วค่ะ ไม่ได้ผลค่ะ เป็นเหมือนเดิม นิ่ง เลย

ไม่ทราบว่า คุณ หางอึ้ง มีวิธีแนะนำไหมคะ เป็นวิธีอื่นก็ได้ค่ะ เอาที่คุณ หางอึ้ง ถนัด เผื่อเราจะเอาไปประยุกต์^^

อ๋อ คิดว่ามันเป็นที่ ตาราง database หรือเปล่าคะ เราสงสัยมานานแล้ว คือ เราใช้วิธี ให้โปรแกรม access มันผูกข้อมูลให้น่ะค่ะ

e2

แบบว่า เพื่อสอนมาน่ะค่ะ แล้วเราก็จะ save ไว้ว่า เป็น EmpPay

แต่เราสงสัยเวลาเราไปเลือก ใน visual studio น่ะ มันจะมี Table กับ view แล้ว EmpPay มันไปอยู่ใน View มันก็เลย ลบไม่ได้หรือเปล่า

เดาเอาอ่านะ

แบบนี้นะ
e3

ไม่ทราบว่ามันเกี่ยวกันหรือเปล่าคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:44:47 By : mayapopy
 


 

No. 7



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



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


อ๋อ ทราบแล้วค่ะ สำหรับเรื่องที่ 4 งั้นปล่อยไปเน่อะ

เป็นอันว่าตอนนี้เรื่องแค่ 2 ปัญหาแล้ว

ดีใจ^^

ขอบคุณ คุณ หางอึ้งอีกครั้งค่ะ

ใกล้จะหายปวดหัวแล้ว อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:48:13 By : mayapopy
 


 

No. 8



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



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


น่าทึ่งมากเลย คุณหางอึ้งนี่เก่งเน่อะ ดูแค่หน้าตาโปรแกรมกับโค้ด ก็รู้แล้วว่า database เรา เป็นยังไง แถมยังรู้อีกว่าเป็นโปรแกรมอะไร

เมื่อไหร่เราจะเก่งแบบนี้บ้าง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 16:52:43 By : mayapopy
 


 

No. 9



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



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


EmpPay เป็น Query นิ
นึกว่าชื่อ Table
เข้าใจว่า EmpPay เกิดจากการ Join ระหว่าง Employee กับ Payrollday

และหวังว่า Column แรกของ DataGridView1 คือ Payroolday.IDPayday นะครับ

Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
  con.Open()
  If MsgBox("ต้องการลบแถวที่เลือกใช่หรือไม่", MsgBoxStyle.OkCancel, MsgBoxResult.Cancel) Then
    Return

  End If

  Dim ID As String = DataGridView1.SelectedRows.Item(0).Cells(0).Value
  'Dim ID As String = Me.DataGridView1.CurrentRow.Index
  Dim sql As String = "DELETE FROM Payrollday WHERE IDpayday = @IDpay"   ' DELETE FROM นะครับ ไม่ใช่ DELETE * FROM ก่อนหน้านี้ผมเขียนผิด
  cmd.Parameters.AddWithValue("@IDpay", 0) 
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(0).Value   ' กรณีที่ IDPayday อยู่ Column แรกของ Grid นะ (หมายเหตุ: ปกติผมไม่นิยมอ้างอิงถึงข้อมูลด้วยวิธีนี้นะ เพราะมันจะยึดติดเกินไปว่าต้องวาง IDPayday เป็น Column แรก)
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
End Sub



แก้ไข cmd.Parameters.AddWithValue("IDpay", 0) -> cmd.Parameters.AddWithValue("@IDpay", 0)


ประวัติการแก้ไข
2011-03-22 17:31:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 17:28:11 By : หางอึ่ง
 


 

No. 10



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



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


มาทำงานต่อแล้วค่ะ

โห คุณ หางอึ้ง มาตอบทุกกระทู้เลย ขอบคุณมากๆเลยค่ะ

งั้นแสดงว่า เราทำ EmpPay ผิดใช่ไหมคะ คือ เราต้องการให้มัน join Table กันน่ะค่ะ ทำไม่เป็น แล้วเพื่อนสอนมาแบบนี้ ไม่ทราบว่า ถ้าจะให้มัน join Table กัน จริงๆ ต้องทำยังไงหรอคะ

เดี๋ยวขอเอาโค้ดไปลองก่อนนะคะ เดี๋ยวจะมารายงานผลค่ะ

ขอบคุณ อีกครั้งค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 09:26:52 By : mayapopy
 


 

No. 11



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



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


มารายงานผลค่ะ นิ่ง เหมือนเดิมค่ะ

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

กรณีที่ IDPayday อยู่ Column แรกของ Grid

เราก็เลยไปนับ column ที่อยู่ใน Datagrid แล้ว มันอยู่ column ที่ 11 ก็เลย ลองแก้จาก 0 เป็น 11 ดู (จาก 0 ทั้งหมด ก็ไล่ แก้ทีละตัว) แต่มันก็ยังไม่ลบน่ะค่ะ

e4

e5

ลองไล่แก้จาก 0 แก้เป็น 11 แล้ว(ทีละตัว จนครบ) ก็ยังไม่ได้

e6


เราก็เลยคิดว่า ก่อนอื่น เราต้องแก้ให้ table มัน join กัน ให้ถูกก่อน น่าจะดีกว่า เน่อะ^^ กัวว่ามันจะผิดตั้งแต่แรก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 09:45:13 By : mayapopy
 


 

No. 12



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



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


เดี๋ยวไปลอง แก้เรื่อง combobox ต่อก่อนนะคะ

แล้วเดี๋ยวจะมารายงานผลค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 09:50:42 By : mayapopy
 


 

No. 13



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



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


cmd.Parameters.AddWithValue("@IDpay", 0)
คำสั่งข้างบนนี้ เป็นการสร้าง Parameter พร้อมกับค่าเริ่มต้นของ Parameter
ในกรณีนี้ จะใส่เป็น 0 หรือเลขอะไรก็ได้

cmd.parameters("@IDPay").Value = dgr.Cells(0).Value
คำสั่งนี้ เป็นการกำหนดค่าให้พารามิเตอร์ @IDPay ด้วยค่าที่อยู่ใน row คอลัมภ์แรก
ถ้า IDPayday ของคุณอยู่คอลัมภ์ที่ 11 ควรแก้เป็น (VB.NET นับคอลัมภ์แรก เป็น 0)
cmd.parameters("@IDPay").Value = dgr.Cells(10).Value


Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
  con.Open()
  If MsgBox("ต้องการลบแถวที่เลือกใช่หรือไม่", MsgBoxStyle.OkCancel, MsgBoxResult.Cancel) Then
    Return

  End If

  Dim sql As String = "DELETE FROM Payrollday WHERE IDpayday = @IDpay"  
  cmd.Parameters.AddWithValue("@IDpay", 0)     
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(10).Value 
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 10:14:12 By : หางอึ่ง
 


 

No. 14



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



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


ถ้ายังไม่ได้
ลองใส่ MessageBox เพิ่มใน For Loop
เผื่อจะได้เงื่อนงำอะไรบ้าง

Code (VB.NET)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(10).Value 
    dim st As String = "@IDPay = " & dgr.Cells(10).Value.tostring()
    Messagebox.Show(st)
    cmd.ExecuteNonQuery()
  Next


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 10:26:18 By : หางอึ่ง
 


 

No. 15



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



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


แก้เป็น 10 แล้ว มันก็ไม่ยอมลบให้ค่ะ T_T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 10:27:29 By : mayapopy
 


 

No. 16



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



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


ใส่ MessageBox ตาม No14 รึยัง
อยากรู้ว่ามันแสดงข้อความว่าอย่างไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 10:37:30 By : หางอึ่ง
 


 

No. 17



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



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


ใส่แล้ว มันไม่ขึ้น message อะไรเลยน่ะค่ะ เหมือนกับมันไม่ทำอะไรเลยอ่ะ

-*-

ทำไงดีล่ะ เราก็ลองโทรไปถามเพื่อนๆแล้วไม่มีใครแก้ได้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 10:59:12 By : mayapopy
 


 

No. 18



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



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


เข้าใจว่ามันโดน Return
เอา MsgBox ออกก่อนดีไหม

Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
  con.Open()
  'If MsgBox("ต้องการลบแถวที่เลือกใช่หรือไม่", MsgBoxStyle.OkCancel, MsgBoxResult.Cancel) Then
  '  Return

  'End If

  Dim sql As String = "DELETE FROM Payrollday WHERE IDpayday = @IDpay"  
  cmd.Parameters.AddWithValue("@IDpay", 0)     
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(10).Value 
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 12:41:52 By : หางอึ่ง
 


 

No. 19



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



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


มันขึ้น error แบบนี้ค่ะ

e8
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 14:14:13 By : mayapopy
 


 

No. 20



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



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


ต้องเป็น
cmd.Parameters.AddWithValue("@IDpay", 0)

ไม่ใช่
cmd.Parameters.AddWithValue("IDpay", 0)

อุตส่าห์เขียนไปให้ถูกแล้ว แก้ให้ผิดอีก กำ

Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
  con.Open()
  'If MsgBox("ต้องการลบแถวที่เลือกใช่หรือไม่", MsgBoxStyle.OkCancel, MsgBoxResult.Cancel) Then
  '  Return

  'End If

  Dim sql As String = "DELETE FROM Payrollday WHERE IDpayday = @IDpay"  
  cmd.Parameters.AddWithValue("@IDpay", 0)     
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(10).Value 
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 14:47:58 By : หางอึ่ง
 


 

No. 21



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



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


อ๋อ ไม่ใช่ค่ะ ตอนแรกๆลองแบบนั้นไปแล้วไม่ได้ผล ก็เลยลองเปลี่ยนดูน่ะค่ะ

แต่พอลืมแก้

ตอนกลับมาแล้ว มันเป็นแบบนี้ค่ะ

e13

ขอโทษค่า ลืมเปลี่ยนกลับ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 14:56:28 By : mayapopy
 


 

No. 22



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



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


แสดงว่ามีปัญหาเกี่ยวกับ Connection
ไม่ใช่ Command
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 14:59:06 By : หางอึ่ง
 


 

No. 23



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



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


เช็คก่อนว่า Conection เปิดสำเร็จไหม
ถ้าไม่ คุณหาวิธีเปิด Connection ให้ได้ก่อนล่ะกัน

Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
 Try
  con.Open()
  If con.State <> ConnectionState.Open Then
    messagebox.Show("ไม่สามารถเปิด Connection" & vbCrLf & con.ConnectionString)
    Return
  End If

  Dim sql As String = "DELETE FROM Payrollday WHERE IDpayday = @IDpay"  
  cmd.Parameters.AddWithValue("@IDpay", 0)     
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    cmd.parameters("@IDPay").Value = dgr.Cells(10).Value 
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
  Catch ex As Exception
      Messagebox.Show(ex.Message)
  End Try
End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:07:50 By : หางอึ่ง
 


 

No. 24



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



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


เช็คแล้ว เปิดอยู่ค่ะ
e14
คุณ หางอึ้งพักผ่อนบ้างก็ได้ค่ะ เกรงใจ เดี๋ยวปวดหัวเหมือนเรา^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:19:43 By : mayapopy
 


 

No. 25



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



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


ตอนนี้คิดว่า ภายในอาทิตย์นี้
ถ้าไม่ได้จริงๆ ก็ตั้งใจว่าจะไปจ้างเขาทำน่ะค่ะ

แค่ 2 จุด คงคิดไม่แพงมั่งT_T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:21:26 By : mayapopy
 


 

No. 26



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



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


รักษาสุขภาพบ้างนะคะ เดี๋ยวปวดหัว

ส่งคำขอบคุณให้แล้วค่ะ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:22:17 By : mayapopy
 


 

No. 27



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



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


แก้ปัญหาเองไปก่อนล่ะกัน
ถ้าไม่ได้
วันอาทิตย์นี้ช่วงบ่าย พอว่างอยู่ ถ้ามาแถวพระโขนงได้ ก็จะช่วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:31:09 By : หางอึ่ง
 


 

No. 28



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



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


อีกสักที ก่อนหมดลมหายใจ
เช็ค con.state ก่อนเรียก con.Open()

Code (VB.NET)
Private Sub Delbtt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delbtt.Click
 Try
  If con.State <> ConnectionState.Open Then con.Open()

  Dim sql As String = "DELETE FROM Payrollday WHERE IDpayday = @IDpay"  
  cmd.Parameters.AddWithValue("@IDpay", 0)     
  Dim cmd As New OleDbCommand(sql, con)
  For Each dgr As DataGridViewRow in DataGridView1.SelectedRows
    Messagebox.Show("@IDPay=" & dgr.Cells(10).Value.Tostring())   ' ใส่ไว้หน่อยจะได้รู้ว่า ได้ค่า IDpayday ที่ถูกต้อง
    cmd.parameters("@IDPay").Value = dgr.Cells(10).Value 
    cmd.ExecuteNonQuery()
  Next
  

  ShowData()
  Delbtt.Enabled = False
  con.Close()
  Catch ex As Exception
      Messagebox.Show(ex.Message)
  End Try
End Sub



ประวัติการแก้ไข
2011-03-23 17:35:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:34:57 By : หางอึ่ง
 


 

No. 29



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



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


โห พระโขนง ไกลมากเลย-*-

ไม่เป็นไรค่า ขอบคุณมากๆค่ะ แค่นี้ก็ช่วยเยอะแล้ว

ไม่แน่พรุ่งนี้ อาจฟลุ๊คทำได้ ก็ได้ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:36:04 By : mayapopy
 


 

No. 30



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



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


รบกวนถามวิธีการ join table ได้ไหมคะ

ว่าจะลอง join table กัน ทำเป็น table ใหม่ เผื่อฟลุ๊ค^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 15:37:07 By : mayapopy
 


 

No. 31



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



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


ลองตาม No.28 รึยังครับ
ใช้ dgr.Cells(10).Value
ไม่ใช้ dgr.Cells("10").Value
อันนั้น เป็นอันสุดท้ายที่จะแนะนำได้แล้วล่ะ

bell จะ Join table ใหม่ก็ไม่ว่าล่ะ
แต่ปัญหานี้คงไม่เกี่ยวกับการ Join table หรอก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 17:33:46 By : หางอึ่ง
 


 

No. 32



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



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


Code หรือปัญหาผมดูว่าไม่น่าเกินความสามารถของท่าน หางอึ่ง หรอกครับ ปัญหามันน่าจะมาจากสภาพแวดล้อมที่เรามองไม่เห็นมากกว่า ถ้า จขกท. Upload Code + Database ปัญหาน่าจะจบได้ง่ายกว่านี้อ่ะครับ อีกอย่างมันทิ้งช่วงการตอบด้วย กว่า จขกท. จะมาบอกผล ไอ้ที่คิดๆ ไว้ตอนตอบก็ลืมหมดแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 08:22:59 By : kaimuk
 


 

No. 33



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



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


ได้แล้วค่ะ คุณหางอึ้ง ดีใจมาก ดีใจแต่เช้าเลย ทำตามที่คุณ Programmer Of Persia กับ คุณ หางอึ้ง บอกเลย ค่ะ แค่เปลี่ยนจาก Cells("10") เป็น (10) ค่ะ
success

เดี๋ยวพรุ่งนี้ส่งคำขอบคุณให้นะคะ พอดีมันส่งได้วันละ 1 ครั้ง เลยส่งให้คุณ Programmer Of Persia ไปแล้ว

ไม่ลืมค่ะ^^

ตอนนี้ก็เหลือแต่ combobox อย่างเดียวแล้ว

ขอบคุณทุกๆคน ที่มาช่วยในครั้งนี้ด้วยค่า

ขอบคุณค่ะ (ขอบคุณอย่างเดียวเลย^^)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 08:48:58 By : mayapopy
 


 

No. 34



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



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


ถ้า Code ตาม No.33
ผมไม่แน่ใจว่าถ้าลบพร้อมกัน 2 Rows จะเกิด Error รึเปล่า
ลองดูนะ

ถ้า Error ก็เอา cmd.Parameters.AddWithValue ไว้ก่อนเข้า For Loop

อีกอย่าง อยากให้ศึกษาเรื่อง Breakpoint
จะเป็นคุณประโยชน์อย่างมาก เมื่อต้องการหา Bug ของโปรแกรม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 09:00:58 By : หางอึ่ง
 


 

No. 35



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



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


ขอโทษค่า คุณ Kaimuk จริงๆก็สงสัยอยู่ว่าจะเข้าใจ ตามที่เราได้อธิบายไปหรือเปล่า ตอนหลังก็เลยตัดสินใจ ทำรูปกับรายละเอียด แล้วก็เอาโค้ดมาให้เกือบทั้งหมดน่ะค่ะ เพื่อให้มันเข้าใจมากยิ่งขึ้น แต่จริงๆก็อย่างที่ คุณ Kaimuk บอกน่ะค่ะ น่าจะเอาโปรแกรมมาอัพโหลดให้เลย แต่พอดีว่า เราไม่รู้ว่าต้องเอาส่วนไหนมาอัพโหลดน่ะค่ะ (เพิ่งหัดเขียนโปรแกรมได้ 2 อาทิตย์กว่า ยัง งูๆ ปลาๆ อยู่เลย แล้วก็ไม่ได้ไปเรียนด้วยน่ะค่ะ ซื้อหนังสือมาอ่านเอา แต่ถ้าทำโปรแกรมง่ายๆได้ ก็ตั้งใจว่าจะไปเรียนแล้วค่ะ^^) ตอนแรกๆ ตั้งใจว่าจะใช้ฐานข้อมูล SQL คอมมันดันลงไม่ได้อีก ก็เลยเปลี่ยนเป็น Access ตามที่หนังสือสอน แต่ผลก็ออกมาเป็นที่น่าพอใจนะคะ ถามใน google บ้าง ถามคนในเว็บนี้บ้าง ตอนนี้ก็เหลือ combobox อย่างเดียว ถ้าทำได้ก็จะส่ง แล้วก็จะไปเรียน Vb.net เพิ่ม ^^ แล้วก็ที่ทิ้งช่วงการตอบเพราะว่า มัวแต่ไปหาใน google กับ อ่านหนังสือ แล้วพอ 5 โมง ก็กลับบ้านแล้ว พอกลับบ้านก็อาบน้ำ กินข้าว ดูละคร นอน น่ะ ไม่ได้เล่นคอมเลย -*- (ช่วงพักสมอง อิอิ) ก็เอาเป็นว่าขอโทษทุกคนด้วยนะคะ ที่ทำให้วุ่นวาย ค่ะ ขอบคุณคุณ kaimuk ด้วยค่ะ เห็นมาคอยช่วยตลอดเลย ขอบคุณมากค่า^^

เดี๋ยวคราวหน้าจะมาอัพโหลด ทั้งโปรแกรมเลย^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 09:37:02 By : mayapopy
 


 

No. 36



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



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


อ๋อ แล้วก็อีกอย่างค่ะ ถ้ารู้ว่าอัพโหลดตรงไหน ก็คงยังไม่กล้าอัพ ประมาณว่า โค้ดเรามั่วมา(เวลาตั้งชื่อ ตั้งแบบขอไปที เช่น เงินเดือน ก็ตั้ง money บ้าง Salary บ้าง ขนาด Detail ยังเขียนผิดเลย รวมถึงฐานข้อมูลด้วย-*-) กลัวว่าจะยิ่ง งง เข้าไปใหญ่ น่ะค่ะ แหะๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 09:40:21 By : mayapopy
 


 

No. 37



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



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


ลองทำตามที่คุณหางอึ้งบอกแล้วค่ะ มันผลลัพภ์แบบนี้น่ะค่ะ

ถ้าลองลบ มากกว่า 1 แถว(ลบ3แถว) จะได้แบบนี้ค่ะ
row1

พอกด ok ไป มันก็จะขึ้นแบบนี้............มันลบได้ค่ะ
row2

แล้วพอทำตามที่คุณ หางอึ้ง บอก เอา cmd.Parameters.AddWithValue ไว้ก่อนเข้า For Loop
แล้วลองลบ 2 แถว
มันขึ้นแบบเดียวกันค่ะ
row3

พอกด ok ไป ปรากฏว่า....มันไม่ยอมลบค่ะ
row4


แล้วก็เรื่องที่คุณหางอึ้งบอกอีกเรื่อง เรื่อง
Breakpoint คิดว่าในหนังสือน่าจะอยู่ในเรื่อง การ เช็คค่า Error เดี๋ยวจะไปลองศึกษาดูค่ะ อ่านใกล้ถึงแล้ว

ปล. เมื่อวานเจ็บใจ แวะเซ็นทรัล ไปหนังสือมาเพิ่มอีกเล่ม เผื่อมันจะลงรายละเอียดลึกกว่า (เสียเงินเลย แหะๆ) แต่ยังไม่ทันได้อ่านเลย แก้ไขได้ซะแระ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 09:55:37 By : mayapopy
 


 

No. 38



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



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


อ๋อ ไหนๆ ก็คุยเรื่องเรียนแระ ขอถามหน่อยค่ะ ว่าไปเรียนกันที่ไหนหรอคะ แพงไหม??
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 10:02:18 By : mayapopy
 


 

No. 39



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

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

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

ดีใจด้วยครับที่ทำไ้ด้ ( หืดขึ้นคอเลยวุ้ย - -' )
โค้ดผมมีบักอย่างที่ท่านหางอึ่งบอกจิงแหละ
ลองใส่
cmd.Parameters.Clear()
ก่อน
cmd.Parameters.AddWithValue("@IDpayday", idPayDay)
ดูครับ เผื่อลบหลายตัวได้
ถ้าไม่ได้ ก็กำหนด property multiselect ของ datagrid เป็น false ซะ
จะได้เลือกแค่ row เดียว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 11:03:06 By : Programmer Of Persia
 


 

No. 40



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



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


ขอบคุณค่า คุณ Programmer Of Persia

หืดขึ้นคอเลยหรอ อิอิ

เดี๋ยวจะลองไปทำตามดูค่ะ

แต่ตอนนี้หิว

อย่าลืมทานข้าวนะคะ

ตอนบ่ายจะมารายงานผล^^

ปล. ถ้าไม่ได้ ก็กำหนด property multiselect ของ datagrid เป็น false ซะ
จะได้เลือกแค่ row เดียว<===== อันนี้น่าสนใจ (เพิ่งรู้^^)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 11:47:51 By : mayapopy
 


 

No. 41



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



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


โอโห ลบได้แล้วค่ะ

ทำตามที่คุณ Programmer Of Persia บอก ลบได้ ไม่มี bug แล้ว

เอาเป็นว่า เรื่อง ลบ Datagrid สมบูรณ์แล้วค่ะ

ตอนนี้กำลังศึกษาเรื่อง combobox อยู่ ตอนแรกๆเกือบทำได้แระ แต่มันไม่อ่าน ค่าซ้ำเหมือนเดิม เลยกะว่าจะเปลี่ยนเป็น ไอดี มันจะได้ไม่ซ้ำ แต่ถ้าเปลี่ยนเป็น ไอดี ถ้าฐานข้อมูลมันเยอะ มันก็จะลำบากอีก เพราะต้องมาคอยจำ รหัสของแต่ละคน ก็เลย เอากลับไปเป็นเหมือนเดิมค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 13:33:11 By : mayapopy
 


 

No. 42



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



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


ลืมขอบคุณ

ขอบคุณ Programmer Of Persia และ ทุกๆคน มากๆๆค่ะ

เหลือ combobox รบกวนอีกเรื่องนะคะ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 13:34:18 By : mayapopy
 


 

No. 43



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



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


กระทู้ยาวเฟื้อยยยเลยยนะเนี้ย

มาเป็นกำลังใจให้ขอรับ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 15:59:05 By : 3rds
 


 

No. 44



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



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


ขอบคุณค่ะ คุณ 3rds

กระทู้ยาวเพราะยังแก้ไม่ได้เลย

จะไปตั้งกระทู้ใหม่ ดีไหม?^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 08:11:39 By : mayapopy
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ติดอยู่ 4 เรื่อง โปรแกรมก็จำสำเร็จ ขอความช่วยเหลือหน่อยค่ะ 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 00
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 อัตราราคา คลิกที่นี่