HOME > .NET Framework > Forum > อยากจะอัพเดตก็ต่อเมื่อกดปุ่มโดยใช้ข้อมูลจากกริดวิว...เมื่อผมกดไปแล้วอยากจะให้ข้อมูลตรงส่วนจำนวนไปอัพเดตของข้อมูลสินค้าอ่ะครับ
ตอนนี้ผมแก้ได้แล้ว แต่มันขึ้นอีกอย่างอ่ะครับ
มันขึ้นว่า "Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index" ตรง "a = GridView1.Rows(i).FindControl("checkid")"
แก้ยังไงอ่ะครับ
Code (VB.NET)
Protected Sub _btnClearCart_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles _btnClearCart.Click
Dim now As Date = Date.Now.ToShortDateString
Dim a As CheckBox
Dim c As Label
Dim i As Integer
For i = 0 To GridView1.Rows.Count - 1
a = GridView1.Rows(i).FindControl("checkid") <--- ขึ้นตรงนี้
c = GridView1.Rows(i).FindControl("proid")
If a.Checked = True Then
Dim sel As New SqlDataAdapter("select num from product,cart where cart.pro_id='" & c.Text & "' ", con)
Dim sel1 As New DataSet
sel.Fill(sel1, "up")
Dim sql As String = "delete from cart where username='" & Session("user") & "' and buy='" & now & "' "
Dim up As New SqlCommand("update product set pro_total=pro_total+" & sel1.Tables("up").Rows(i)("num") & " where pro_id='" & c.Text & "' ", con)
Dim dr As SqlDataReader
con.Open()
Dim cmd As New SqlCommand(sql, con)
cmd.ExecuteNonQuery()
up.ExecuteNonQuery()
dr = cmd.ExecuteReader
GridView1.DataSource = dr
GridView1.DataBind()
con.Close()
Session("s") = Session("s") - _lblOrderTotal.Text
End If
Next
_lblOrderTotal.Visible = False
Label9.Visible = False
Label8.Visible = True
End Sub