Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
içindeki DataTabledeğerleri düzenlerken satır hatalarına yanıt vermek zorunda kalmamak için, hata bilgilerini daha sonra kullanmak üzere satıra ekleyebilirsiniz.
DataRow nesnesi bu amaçla her satırda bir RowError özellik sağlar.
RowError özelliğine veri eklemek, bir DataRow nesnesinin HasErrors özelliğini true olarak ayarlar.
DataRow bir DataTable'ın parçasıysa ve DataRow.HasErrorstrue ise, DataTable.HasErrors özelliği de doğrudur. Bu, ait olduğu DataSet için de DataTable geçerlidir. Hataları test ederken, hata bilgilerinin herhangi bir satıra eklenip eklenmediğini belirlemek için HasErrors özelliğini denetleyebilirsiniz.
HasErrors eğer true ise, yalnızca hata içeren satırları döndürmek ve incelemek için DataTable'ün GetErrors yöntemini kullanabilirsiniz, aşağıdaki örnekte gösterildiği gibi.
Dim workTable As DataTable = New DataTable("Customers")
workTable.Columns.Add("CustID", Type.GetType("System.Int32"))
workTable.Columns.Add("Total", Type.GetType("System.Double"))
AddHandler workTable.RowChanged, New DataRowChangeEventHandler(AddressOf OnRowChanged)
Dim i As Int32
For i = 0 To 10
workTable.Rows.Add(New Object() {i , i *100})
Next
If workTable.HasErrors Then
Console.WriteLine("Errors in Table " & workTable.TableName)
Dim myRow As DataRow
For Each myRow In workTable.GetErrors()
Console.WriteLine("CustID = " & myRow("CustID").ToString())
Console.WriteLine(" Error = " & myRow.RowError & vbCrLf)
Next
End If
Private Shared Sub OnRowChanged( _
sender As Object, args As DataRowChangeEventArgs)
' Check for zero values.
If CDbl(args.Row("Total")) = 0 Then args.Row.RowError = _
"Total cannot be 0."
End Sub
DataTable workTable = new DataTable("Customers");
workTable.Columns.Add("CustID", typeof(Int32));
workTable.Columns.Add("Total", typeof(Double));
workTable.RowChanged += new DataRowChangeEventHandler(OnRowChanged);
for (int i = 0; i < 10; i++)
workTable.Rows.Add(new Object[] {i, i*100});
if (workTable.HasErrors)
{
Console.WriteLine("Errors in Table " + workTable.TableName);
foreach (DataRow myRow in workTable.GetErrors())
{
Console.WriteLine("CustID = " + myRow["CustID"]);
Console.WriteLine(" Error = " + myRow.RowError + "\n");
}
}
protected static void OnRowChanged(
Object sender, DataRowChangeEventArgs args)
{
// Check for zero values.
if (args.Row["Total"].Equals(0D))
args.Row.RowError = "Total cannot be 0.";
}