[原创]Datagrid的编辑,更新操作



        页面上有一个datagrid控件,为了简单我只更新了Titles数据表里的price字段,更新其他都是一样的,在这里要注意给Sqlcommand提供参数的方法,以及获得当前ID和当前编辑后的Price的值。Datagrid1.edittitlemindex=-1为退出编辑状态。
None.gif      Dim  conn  As   New  SqlConnection( " data source=localhost;initial catalog=pubs;user id=sa;pwd=SC " )
None.gif    
Dim  com  As   New  SqlDataAdapter( " select title_id,price,type from titles " , conn)
None.gif    
Dim  ds  As  DataSet  =   New  DataSet
ExpandedBlockStart.gifContractedBlock.gif    
Sub grid() Sub grid()
InBlock.gif        com.Fill(ds, 
"abc")
InBlock.gif        DataGrid1.DataSource 
= ds.Tables(0).DefaultView
InBlock.gif        DataGrid1.DataKeyField 
= "title_id" '表明主键
InBlock.gif
        DataGrid1.DataBind()
ExpandedBlockEnd.gif    
End Sub

None.gif
ExpandedBlockStart.gifContractedBlock.gif    
Private   Sub Page_Load() Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
InBlock.gif        
If Not Page.IsPostBack Then
InBlock.gif            grid()
InBlock.gif        
End If
ExpandedBlockEnd.gif    
End Sub

None.gif
ExpandedBlockStart.gifContractedBlock.gif    
Private   Sub DataGrid1_EditCommand() Sub DataGrid1_EditCommand(ByVal source As ObjectByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
InBlock.gif        
'datagrid1.edititemindex属性可以设置哪行进入编辑状态,-1为退出编辑状态
InBlock.gif

InBlock.gif        DataGrid1.EditItemIndex 
= e.Item.ItemIndex '可由事件对象返回哪行的编辑按钮被按下
InBlock.gif
        grid()
ExpandedBlockEnd.gif    
End Sub

None.gif
ExpandedBlockStart.gifContractedBlock.gif    
Private   Sub DataGrid1_CancelCommand() Sub DataGrid1_CancelCommand(ByVal source As ObjectByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
InBlock.gif        DataGrid1.EditItemIndex 
= -1
InBlock.gif        grid()
ExpandedBlockEnd.gif    
End Sub

None.gif
ExpandedBlockStart.gifContractedBlock.gif    
Private   Sub DataGrid1_UpdateCommand() Sub DataGrid1_UpdateCommand(ByVal source As ObjectByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
InBlock.gif        conn.Open()
InBlock.gif        
'使用@变量名的方法书写更新语句
InBlock.gif
        Dim com As SqlCommand = New SqlCommand("update titles set price=@price where title_id=@id", conn)
InBlock.gif        com.Parameters.Add(
New SqlParameter("@id", SqlDbType.NVarChar, 10))
InBlock.gif        com.Parameters(
"@id").Value = DataGrid1.DataKeys(e.Item.ItemIndex) '根据主键返回要更新的ID
InBlock.gif
        com.Parameters.Add(New SqlParameter("@price", SqlDbType.Decimal))
InBlock.gif        
Dim tb As TextBox
InBlock.gif        tb 
= e.Item.Cells(4).Controls(0)
InBlock.gif        com.Parameters(
"@price").Value = Convert.ToDecimal(tb.Text)
InBlock.gif        
Try
InBlock.gif            com.ExecuteNonQuery()
InBlock.gif        
Catch ex As Exception
InBlock.gif            Response.
Write("更新失败<br>" & ex.ToString)
InBlock.gif        
Finally
InBlock.gif            conn.Close()
InBlock.gif        
End Try
ExpandedBlockEnd.gif    
End Sub

转载于:https://www.cnblogs.com/xzlang/archive/2005/02/04/101822.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值