如何通知用户要删除/更新的数据具有临界值?

Posted

技术标签:

【中文标题】如何通知用户要删除/更新的数据具有临界值?【英文标题】:How to inform user that the data to be deleted/updated has critical values? 【发布时间】:2016-12-25 09:46:19 【问题描述】:

我想让用户知道他们要删除的数据是有值的。

例如:用户想删除记录“数学”科目,但该科目有学生注册,所以用户不能删除记录“数学”。

我想知道这个在 c# 中的语法。是的,我知道如何使用“删除”语法,但我想让用户知道他们要删除的记录有一些有价值的信息。让用户知道他们即将删除关键数据。我知道这也可以在VB中使用

Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
    If DTTable("SELECT * ", "tblSubjectsEnrolled", " WHERE CtrlNumber ='" & IDNumber & "'").Rows.Count > 0 Then
        MessageBox.Show("The subject schedule cannot be deleted, because there are still students enrolled in it!", "Delete!", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Else
        If MessageBox.Show("The operation cannot be undone! Continue?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            RecordRow("DELETE FROM [tblOfferedSubjects] WHERE [CtrlNumber]='" & IDNumber & "'")

            btnSearch.PerformClick()
            MessageBox.Show("Record Deleted!", "Delete", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
            SelectRecord()
        End If
    End If
End Sub

Public Sub RecordRow(ByVal sql As String)
    Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(conStr)
    Dim cmd As New OleDb.OleDbCommand
    cmd.CommandType = CommandType.Text
    cmd.CommandText = sql
    cmd.Connection = con
    con.Open()
    cmd.ExecuteNonQuery()
    con.Close()
End Sub
Public Function DTTable(ByVal sql As String, ByVal tName As String, ByVal filter As String) As DataTable
    Dim connection As New OleDb.OleDbConnection(conStr)
    Dim dataAdapter As New OleDb.OleDbDataAdapter
    Dim ds As New DataSet
    dataAdapter = New OleDb.OleDbDataAdapter(sql + " from " + tName + filter, connection)
    dataAdapter.Fill(ds, tName)
    Return ds.Tables(tName)
End Function

我想在该代码中使用类似的东西。我也尝试将该代码转换为 c#,但我无法获得 DTTable().Rows.Count > 0,因为 .Rows 前面不能有 void 值。有人可以帮我解决这个问题吗?

我展示了可以帮助您理解问题的整个 sn-ps 代码。 PS:上面显示的代码不是我的。我只是用它作为这个问题的一个例子。 PPS: 我想限制用户删除整条记录。假设在类别中,有子类别。如果用户想删除具有子类别的类别,则不允许用户删除该类别,除非它没有任何子类别。

【问题讨论】:

您可能应该显示代码的特定部分,而不是复制粘贴整个代码文件。 @DarkKnight 我已经说过我遇到错误的具体部分(DTTable().Rows.Count > 0) 【参考方案1】:

正如您已经提到您知道删除语法,您唯一的问题似乎是显示消息。

其实和VB中使用的方法差不多。

// Delete confirmation
if (MessageBox.Show ("The operation cannot be undone! Continue?", "Delete",
        MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        == DialogResult.Yes) 

    //Delete the row

更多详情请参考:

Displaying Message Boxes DataTable.Select Method (String) How to: Delete Rows in a DataTable

【讨论】:

我想限制用户删除整条记录。假设在类别中,有子类别。如果用户想删除具有子类别的类别,则不允许用户删除该类别,除非它没有任何子类别。 您可以通过使用外键来实现这一点,表tblOfferedSubjects有一个“数学”行,使用这个行ID作为外键作为subjectsubject表中的字段.当用户尝试删除“Math”时,只需在tblSubjectsEnrolled 表中查找具有“Math” id 作为外键的行(用于存储“math”行 id 的字段)。请注意,两个表的主键(id)是不同的。 @RubyRaeOlaya 如果您在代码中使用的CtrlNumber 字段是tblOfferedSubjects 的主键和tblSubjectsEnrolled 的外键,那么您很高兴。 IDNumber 是用户尝试删除的行的行 ID。

以上是关于如何通知用户要删除/更新的数据具有临界值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在特定时间从 iOS 通知中心自动删除推送通知?

Android - 如何通知用户在数据库中更新了一行

当我在 Android 应用程序中更新我的 Sqlite 数据库时,如何向用户发送通知?

用户可以使用新数据时如何发送 Firebase 通知?

如何使用 Socket.io 实时更新大量数据

在 Django Rest Framework 中批量更新数据