如何通知用户要删除/更新的数据具有临界值?
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作为外键作为subject
中subject
表中的字段.当用户尝试删除“Math”时,只需在tblSubjectsEnrolled
表中查找具有“Math” id 作为外键的行(用于存储“math”行 id 的字段)。请注意,两个表的主键(id)是不同的。
@RubyRaeOlaya 如果您在代码中使用的CtrlNumber
字段是tblOfferedSubjects
的主键和tblSubjectsEnrolled
的外键,那么您很高兴。 IDNumber
是用户尝试删除的行的行 ID。以上是关于如何通知用户要删除/更新的数据具有临界值?的主要内容,如果未能解决你的问题,请参考以下文章