|
|
|
Checkbox เมื่อเลือกที่ checkbox แล้วต้องการเก็บค่าลงฐานข้อมูล แต่ข้อมมูลที่เก็บลงไปจะซ้ำกัน |
|
|
|
|
|
|
|
ค่าที่บันทึกลง
|
|
|
|
|
Date :
2014-11-16 15:58:33 |
By :
QUEUE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอามาแค่นี้คงบอกไม่ได้ว่าผิดอย่างไรครับ เอาโค๊ดที่เป็น text มาวางด้วยครับ
ปล. ถ้าเอามาเฉพาะบางส่วน อย่าลืมเอาตัวประกาศมาด้วย นะครับ จะได้รู้วาใช้ คอมโปเน้นท์ตัวไหน
|
|
|
|
|
Date :
2014-11-16 16:20:45 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Protected Sub btnok_Click(sender As Object, e As EventArgs) Handles btnok.Click
' Call check()
Dim chk As CheckBox
Dim lblgmid As Label
Dim i As Integer
For i = 0 To myRepeater.Items.Count - 1
chk = myRepeater.Items(i).FindControl("chk")
lblgmid = myRepeater.Items(i).FindControl("lblgmid")
If chk.Checked = True Then
Me.Label1.Text = Me.Label1.Text & "<br>" & lblgmid.Text
Try
If con.State = ConnectionState.Open Then
str &= "insert into Login(agent_gmid,agent_date,agent_time) "
str &= "values(@gmid,@date,@time)"
cmd = New SqlCommand(str, con)
With cmd
.Connection = con
.CommandType = CommandType.Text
.CommandText = str
.Parameters.AddWithValue("@gmid", lblgmid.Text.ToString())
.Parameters.AddWithValue("@date", lbldate.Text.ToString())
.Parameters.AddWithValue("@time", lbltime.Text.ToString())
cmd.ExecuteNonQuery()
End With
'End If
End If
Catch ex As Exception
MsgBox(Err.Description)
End Try
Server.Transfer("frmGmid.aspx")
End If
Next
End Sub
นี้เป็น code ใน button คะ
|
|
|
|
|
Date :
2014-11-16 16:26:38 |
By :
QUEUE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (VB.NET)
str = "insert into Login(agent_gmid,agent_date,agent_time) " & _
"values(@gmid,@date,@time)"
'cmd = New SqlCommand(str, con) 'น่าจะผิดตรงนี้
' แก้เป็น
cmd = New SqlClient.SqlCommand
With cmd
.Connection = con
.CommandType = CommandType.Text
.CommandText = str
'.Parameters.AddWithValue("@gmid", lblgmid.Text.ToString()) ' ผมไม่เคยใช้ ToString ต่อท้าย TextBox
'.Parameters.AddWithValue("@date", lbldate.Text.ToString())
'.Parameters.AddWithValue("@time", lbltime.Text.ToString())
.Parameters.AddWithValue("@gmid", lblgmid.Text )
.Parameters.AddWithValue("@date", lbldate.Text )
.Parameters.AddWithValue("@time", lbltime.Text )
'cmd.ExecuteNonQuery() 'ตรงนี้ใช้ with แล้ว ก็ใช้ให้หมด
.ExecuteNonQuery()
End With
และถ้ายังไม่ได้ลองดูข้างล่างนะครับ
ตัวแปร str ไม่ทราบว่าได้ถูกประกาศแบบไหนนะครับ ผมเดาเอาว่า Dim str as String = "" ก็แล้วกันนะครับ
และผมไม่ชำนาญการใช้ parameter
Code (VB.NET)
str = "insert into Login(agent_gmid,agent_date,agent_time) " & _
"values('" & lblgmid.Text & "', '" & lbldate.Text & "', '" & lbltime.Text & "')"
cmd = New SqlClient.SqlCommand
cmd.ExecuteNonQuery()
With cmd
.Connection = con
.CommandType = CommandType.Text
.CommandText = str
.ExecuteNonQuery()
End With
ก็นำไปประยุกต์ใช้ดูนะครับ
ปล. อีกนิด ยังไงก็ให้ใช้ แบบ parameter ดีกว่านะครับ secure กว่ากัน
|
ประวัติการแก้ไข 2014-11-16 17:09:18 2014-11-16 17:15:30
|
|
|
|
Date :
2014-11-16 17:07:32 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากเลยนะคะ คุณ Chaidhanan
ได้แล้วคะ ผิดจุดที่บอกจริงๆด้วยคะ
|
|
|
|
|
Date :
2014-11-16 17:26:11 |
By :
QUEUE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|