如何在GridView加入按钮来进行更新的操作!
说明:我用的数据源是Access数据源控件,而后我又在Gridview控件中加入ButtonField字段加入按钮,为了更新Gridview控件中的时间字段,而这个时间是当前的日期时间,没有涉及到编辑。在应用中,更新别的字段好用,而更新时间不起做用,也不提示错误,不知为什么:
代码如下:
后台的:
Protected Sub GridView2_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView2.RowCommand
If e.CommandName = "Update " Then
Dim cn As New OleDbConnection(yjClass.DbPath1)
Dim str As String = "Update info set fbTime=@d,infobt=@bt where id= " & e.CommandArgument.ToString
Dim cmd As New OleDbCommand(str, cn)
cmd.Parameters.Add( "@d ", OleDbType.Date)
cmd.Parameters( "@d ").Value = Date.Now
Try
cn.Open()
cmd.ExecuteNonQuery()
Finally
cn.Close()
End Try
End If
End Sub
e.CommandArgument.ToString 是按钮绑定的Id字段。
前台代码:
<asp:GridView ID= "GridView2 " runat= "server " AutoGenerateColumns= "False "
DataKeyNames= "Id " DataSourceID= "AccessDataSource1 " Width= "580px " BorderStyle= "None " BorderWidth= "0px " CellPadding= "4 " CellSpacing= "2 " >
<Columns>
<asp:TemplateField> </asp:TemplateField>
<asp:BoundField DataField= "Id " HeaderText= "Id " InsertVisible= "False " ReadOnly= "True "
SortExpression= "Id " />
<asp:TemplateField HeaderText= "信息标题 ">
<ItemTemplate>
<asp:HyperLink ID= "HyperLink1 " runat= "server " NavigateUrl= ' <%# Eval( "id ", "DisplayInfo.aspx?infoid={0} ") %> '
Text= ' <%# Eval( "infobt ") %> '> </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "发布时间 ">
<EditItemTemplate>
<asp:TextBox ID= "TextBox1 " runat= "server " Text= ' <%# Bind( "fbtime ") %> '> </asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID= "Label1 " runat= "server " Text= ' <%# Bind( "fbtime ") %> '> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField= "FbMan " SortExpression= "FbMan " Visible= "False " />
<asp:TemplateField HeaderText= "更新 " ShowHeader= "False ">
<ItemTemplate>
<asp:LinkButton ID= "LinkButton3 " runat= "server " CausesValidation= "False " CommandArgument= ' <%# Eval( "id ") %> '
CommandName= "Update " Text= "更新 " > </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton= "True " />
</Columns>
<HeaderStyle BackColor= "#FFC0C0 " />
<EmptyDataTemplate>
<asp:Label ID= "Label3 " runat= "server " Font-Size= "12px " ForeColor= "#FF8080 " Text= "您还没有信息发布!! "> </asp:Label>
</EmptyDataTemplate>
</asp:GridView>
请高手指点!!
[解决办法]
Dim str As String = "Update info set fbTime=@d,infobt=@bt where id= " & e.CommandArgument.ToString
没看到有@bt参数阿
[解决办法]
更新只对有编辑的数据而言,如果你没有编辑时间,当然时间值没有变化。在Update前,请用代码将时间字段值修改为当前时间