Когда новая строка была добавлена программно с использованием метода автогенерации на моем строго типизированном DataTable, как я могу запустить свою собственную проверку, которая проверяет maxleng моего поля?Проверка на DataTable при добавлении новой строки
Мой клиент (C#)
DAL.ImportMarcDataSet.PublicationsRow newRow = importMarcDataSet.Publications.NewPublicationsRow();
newRow.CallNumber ="QA76.76.A65";
newRow.Title = "Programming WCF services";
newRow.ISBN = "0596526997";
importMarcDataSet.Publications.AddPublicationsRow(newRow);
Мой Доступ к данным Layer (VB)
Partial Class ImportMarcDataSet
Partial Class PublicationsDataTable
Private Sub CallNumberMaxLength(ByVal pRow As PublicationsRow)
If pRow.CallNumber.Length > 25 Then
pRow.SetColumnError("CallNumber", "The value entered is over the maximum length")
Else
pRow.SetColumnError("CallNumber", "")
End If
End Sub
'this event is ok when user made changes to the CallNumber column of the current row
Private Sub PublicationsDataTable_ColumnChanged(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles Me.ColumnChanged
If e.Column Is Me.CallNumberColumn Then
CallNumberMaxLength(e.Row)
End If
End Sub
End Class
End Class
спасибо. – sovantha
Вызов CancelEdit() в событии RowChanging вызовет исключение. См. [Link] (http://msdn.microsoft.com/en-us/library/system.data.datarow.canceledit.aspx). Исключение должно быть выбрано в событии RowChanging, чтобы заставить его отменить. Просто подумал, что добавлю, что если кто-нибудь еще зайдет за этим ответом за помощью. – Hagelt18