Protected Sub GridView1_RowCommand _
(sender As Object, e As GridViewCommandEventArgs) _
Handles GridView1.RowCommand
If e.CommandName.CompareTo("command") = 0 Then
Dim itemID As Integer = Convert.ToInt32( _
GridView1.DataKeys(Convert.ToInt32(e.CommandArgument)).Value)
Dim sqlConn As New SqlConnection("connectionString")
sqlConn.Open()
Dim sqlComm As New SqlCommand("UPDATE itemTable SET property = (property + 1) WHERE id = '" + itemID + "', sqlConn")
sqlComm.ExecuteNonQuery()
sqlConn.Close()
End If
End Sub
基本上,它不起作用,我不明白。我一直试图解决这个问题几天,我看不出我做错了什么。正如您所看到的,当用户单击相应行的按钮字段时,我正在尝试使用(originalvalue)+1的值手动更新数据库中的字段。
我想我要问的是,如果有人能指出任何错误,请做,或者如果有更好的方法来做到这一点(无需通过所有DAL / BLL BS),请告诉我。
非常感谢!
答案 0 :(得分:1)
我已经解决了自己的问题!看一下代码:
Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
// If multiple buttons are used in a GridView control, use the
// CommandName property to determine which button was clicked.
If e.CommandName = "commandname" Then
// Convert the row index stored in the CommandArgument
// property to an Integer.
Dim index = Convert.ToInt32(e.CommandArgument)
// Retrieve the row that contains the button clicked
// by the user from the Rows collection.
Dim row = GridView1.Rows(index)
// Calculate the new value.
Dim tb = CType(row.FindControl("Label1"), Label)
Dim newint As Integer = Convert.ToDouble(tb.Text) + 1
// Get the id of the idea.
Dim id As Integer = Convert.ToInt32( _
GridView1.DataKeys(index).Value)
//Manual update to the database.
Dim con As New SqlConnection("connectionstring")
Dim cmd As New SqlCommand("UPDATE ideatable SET field = " & (newint.ToString) & " WHERE id = " & (id.ToString), con)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
//Refresh the page.
Page.Response.Redirect("default.aspx")
End If
End Sub
还记得在aspx文件代码中为gridview设置OnRowCommand="GridView1_RowCommand"
,我之前忘记了! :/
我很高兴,感谢您提供的所有帮助!希望这个答案可以帮助像我一样陷入困境的人。
答案 1 :(得分:0)
我觉得你的句子有问题: - 在你的陈述的地方尝试下面的
Dim sqlComm As New SqlCommand(“UPDATE itemTable SET property =(property + 1)WHERE id =”+ itemID +“”,sqlConn)
答案 2 :(得分:0)
观察您正在生成的字符串,并尝试手动执行该字符串,然后表格会更新或不更新。
因为我觉得你的桌子里没有“ItemId”。
尝试在SQL Server中执行此操作“选择*来自itemTable,其中id = ItemId”因为我认为itemId不在您的表中。