Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk menghindari harus merespons kesalahan baris saat mengedit nilai dalam DataTable, Anda dapat menambahkan informasi kesalahan ke baris untuk digunakan nanti. Objek DataRow menyediakan RowError properti pada setiap baris untuk tujuan ini. Menambahkan data pada properti RowError dari DataRow mengatur properti HasErrors dari DataRow ke true.
DataRow Jika merupakan bagian dari DataTable, dan DataRow.HasErrorsbenar, properti DataTable.HasErrors juga benar. Ini juga berlaku untuk DataSet yang dimiliki oleh DataTable. Saat menguji kesalahan, Anda dapat memeriksa HasErrors properti untuk menentukan apakah informasi kesalahan telah ditambahkan ke baris apa pun. Jika HasErrors adalah true, Anda dapat menggunakan metode GetErrors dari DataTable untuk mengembalikan dan memeriksa hanya baris dengan kesalahan, seperti yang ditunjukkan dalam contoh berikut.
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.";
}