ADO.NET 快速入門(八):處理 Errors

除了 Try/Catch 和 Exceptions 之外,新的 ADO.NET 數據框架也容許在 DataSet 的每行數據添加錯誤信息。若是 Updates 或者其餘操做失敗,SqlDataAdapters 爲 Rows 附加上錯誤信息。此外,你能夠過濾錯誤行呈現給用戶,或者把它傳遞給錯誤處理函數。
 
即便用 XML 或者 XML Web Services 傳輸,Errors 仍然伴隨 DataSet。 你能夠使用 RowError 屬性爲 DataSet 的 DataRow 設置錯誤信息。
 
示例一:
 
            // 設置行的自定義錯誤
            myDataSet.Tables["Customers"].Rows[0].RowError = "添加一個自定義錯誤";
            myDataSet.Tables["Customers"].Rows[1].RowError = "再另外一個自定義錯誤";

 

如今,你能夠利用 GetErrors() 方法獲取 DataTable 中的錯誤信息。也能夠利用 HasErrors 屬性測試 Errors。
 
示例二:
 
            SqlConnection myConnection = new SqlConnection("server=(local);Integrated Security=SSPI;database=northwind");
            SqlDataAdapter myDataAdapter = new SqlDataAdapter("SELECT * FROM Customers", myConnection);

            DataSet myDataSet = new DataSet();
            myDataAdapter.Fill(myDataSet, "Customers");

            // 設置行的自定義錯誤
            myDataSet.Tables["Customers"].Rows[0].RowError = "添加一個自定義錯誤";
            myDataSet.Tables["Customers"].Rows[1].RowError = "再另外一個自定義錯誤";

            if (myDataSet.Tables["Customers"].HasErrors)
            {
                // 獲取包含錯誤的 DataRow 對象數組
                DataRow[] errDataRows = myDataSet.Tables["Customers"].GetErrors();
                Console.WriteLine("DataTable " + myDataSet.Tables["Customers"].TableName + " 包含 " + errDataRows.Length.ToString() + " 個 Errors!");

                for (int i = 0; i <= errDataRows.Length - 1; i++)
                {
                    Console.WriteLine("錯誤行 " + errDataRows[i]["CustomerID"].ToString() + " -- 錯誤信息:" + errDataRows[i].RowError);
                }
            }
            else
            {
                Console.WriteLine("==========================");
                Console.WriteLine("DataTable " + myDataSet.Tables["Customers"].TableName + " 沒有發現錯誤!");
            }

 

原文連接:
相關文章
相關標籤/搜索