在删除后面加一句判断,数据库是否为空。如果不为空就更新。如果为空就不操作,.
站在用户的角度思考问题,与客户深入沟通,找到矿区网站设计与矿区网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、网站空间、企业邮箱。业务覆盖矿区地区。
具体代码很麻烦,不说了,提个思路:鼠标点击Grid控件时,提取这条记录中具有唯一性的那一列的值,比如编号或身份证号等等(这个比较容易办到),然后按“删除”按钮时,先用Sql语句删除数据库中的这条记录,再重新填充一下这个DataGridView,就达到目的了。
表结构保留吗?不保留用DROP TABLE 表名称,保留的话用TRUNCATE TABLE 表名称
Dim myconn As New OleDb.OleDbConnection
Dim mycommand As New OleDb.OleDbCommand
myconn.ConnectionString = "Provider=Microsoft.ace.OLEDB.12.0;Data Source=C:\Users\Administrator\Documents\账号密码.accdb "
myconn.Open()
mycommand.Connection = myconn
Dim sql5 As String = "delete from 表3 where userid='" (TextBox1.Text) "'"
mycommand.CommandText = sql5
mycommand.CommandType = CommandType.Text
mycommand.ExecuteNonQuery()
Dim sql3 As String = "update 表2 set Balance=Balance-2 where UserID='" (TextBox1.Text) "'"
mycommand.CommandText = sql3
mycommand.CommandType = CommandType.Text
mycommand.ExecuteNonQuery()
myconn.Close()
Try
'先标记表中行状态为删除,不能使用Clear方法,此方法会将dataset.table中所有行清除
for each dr as datarow in DataDataSet.Tables("recip").Rows
dr.delete
next
‘然后更新
'注意使用此方法更新必须保存数据表中包含索引
RecipTableAdapter.Update(DataDataSet,"recip")
’然后再AcceptChanges,此动作必须在Update之后
DataDataSet.Tables("recip").AcceptChanges()
Catch ex As Exception
MessageBox.Show(ex.Message, "系统提示", MessageBoxButtons.OK)
End Try
方法有多种。
可以dataAdapter.Fill到数据表应该,设置几个command,再通过dataAdapter.Update就可以更新数据了。不过表要有一个关键的key吧。
另外一种直观一点:
也需要表有个关键key有就是关键字段。
你datagridview.reomveAt(index)同时执行sqlcommand("delete * From table where keyFild='" key "'")就可以。
参考一个实例,如下:
Private Sub bitDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bitDelete.Click
Dim oraConn As New OracleConnection()
oraConn.ConnectionString = " data source=数据库名字;user id=账号;password=密码"
oraConn.Open()
Dim id As String = DataGridView1.CurrentRow.Cells(0).Value.ToString().Trim()
Dim queryString = "delete from t where id ='" id号 "'"
Dim adapter As OracleDataAdapter = New OracleDataAdapter(queryString,oraConn)
Dim mark As DataSet = New DataSet
adapter.Fill(mark, "Mark")
MessageBox.Show("删除数据成功!")
Dim adapter As OracleDataAdapter = New OracleDataAdapter("select * from t ORDER BY id", oraConn)
Dim score As DataSet = New DataSet()
adapter.Fill(score , "Score ")
DataGridView1.DataSource = score
DataGridView1.DataMember = score .Tables(0).ToString
oraConn.Close()
End Sub