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里找到唯一性的删除条件就行了。 --------------------编程问答-------------------- 现在的人怎么就不知道结帖给分呢!
易做图…… --------------------编程问答--------------------
--------------------编程问答-------------------- 你用Remove方法再Update一般更新不了数据库的.
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的操作顺序是:Delete再AcceptChanges,所以,你可以考虑用Delete方法. --------------------编程问答-------------------- 通过datagridview1.CellMouseUp这个事件可以取得选中的行号
根据这个取得的行号,再用datagridview1.Rows(行号).Cells(列号).Value取得该行的ID
补充:.NET技术 , VB.NET