当前位置:编程学习 > C#/ASP.NET >>

datagridview删除行(如何获取选中单元格这行的主键),哪位大侠能帮下给段代码

我开始用这样写
 Me.datagridview1.Rows.Remove(Me.dgvBuy.CurrentRow)
但删除后数据库里没删
后来又想更新下数据库加了下面的
        Adapter.Update(ds.Tables("table"))
但程序报错:如下

对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。

现在只想通过获取所选行的主键 用sql语句来删  主键不知道怎么取????? --------------------编程问答-------------------- 没做过winfrom,不知道datagridview1里面是否有DataKeyNames?如果有,设置成你的主键值,删除时获取即可 --------------------编程问答-------------------- 虽然我还没有用datagridview,但可以说说我的思路:

要用到currencymanager管理绑定位置,
当你获取到CurrentRow时提取出currencymanager的Position,转换成DataRow,用Delete方法标记为要删除,
然后用Adapter的Update方法更新数据(前提是必须有UpdateCommand,即更新语句),执行后datagridview应该自动刷新了,
如果没有刷新可以手动刷新一下

拙见!可以去试试! --------------------编程问答-------------------- 应用sql语句删除就OK了啦。你只要在CurrentRow里找到唯一性的删除条件就行了。 --------------------编程问答-------------------- 现在的人怎么就不知道结帖给分呢!
易做图…… --------------------编程问答--------------------

Dim con As New SqlConnection(SourceConnection)
        Dim cmm As New SqlCommand("select * from TABLENAME", con)
        Dim adp As New SqlDataAdapter()
        adp.SelectCommand = cmm
        Dim cb As New SqlCommandBuilder(adp)
        Try
            con.Open()

            adp.Update(dtb)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
--------------------编程问答-------------------- 你用Remove方法再Update一般更新不了数据库的.
Remove的操作顺序是:Delete再AcceptChanges,所以,你可以考虑用Delete方法. --------------------编程问答-------------------- 通过datagridview1.CellMouseUp这个事件可以取得选中的行号
根据这个取得的行号,再用datagridview1.Rows(行号).Cells(列号).Value取得该行的ID
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,