ASP .NET 不同阶段的数据验证判断和提示
在WEB进行数据验证和提示还是有些麻烦。
1:在页面录入控件中,可以使用验证控件
2:在DAL中(参照http://www.asp.net/learn/dataaccess/tutorial18cs.aspx?tabid=63)
3:在BLL中
在WEB进行数据验证和提示还是有些麻烦。
1:在页面录入控件中,可以使用验证控件
2:在DAL中(参照http://www.asp.net/learn/dataaccess/tutorial18cs.aspx?tabid=63)
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e) { if (e.Exception != null) { // Display a user-friendly message ExceptionDetails.Visible = true; ExceptionDetails.Text = "There was a problem updating the product. "; if (e.Exception.InnerException != null) { Exception inner = e.Exception.InnerException; if (inner is System.Data.Common.DbException) ExceptionDetails.Text += "Our database is currently experiencing problems. Please try again later."; else if (inner is NoNullAllowedException) ExceptionDetails.Text += "There are one or more required fields that are missing."; else if (inner is ArgumentException) { string paramName = ((ArgumentException)inner).ParamName; ExceptionDetails.Text += string.Concat("The ", paramName, " value is illegal."); } else if (inner is ApplicationException)ExceptionDetails.Text += inner.Message; } // Indicate that the exception has been handled e.ExceptionHandled = true; // Keep the row in edit mode e.KeepInEditMode = true; } }
3:在BLL中
public bool UpdateProduct(string productName, decimal? unitPrice, short? unitsInStock, int productID) { Northwind.ProductsDataTable products = Adapter.GetProductByProductID(productID); if (products.Count == 0) // no matching record found, return false return false; Northwind.ProductsRow product = products[0]; // Make sure the price has not more than doubled if (unitPrice != null && !product.IsUnitPriceNull()) if (unitPrice > product.UnitPrice * 2) throw new ApplicationException("When updating a product price," + " the new price cannot exceed twice the original price."); product.ProductName = productName; if (unitPrice == null) product.SetUnitPriceNull(); else product.UnitPrice = unitPrice.Value; if (unitsInStock == null) product.SetUnitsInStockNull(); else product.UnitsInStock = unitsInStock.Value; // Update the product record int rowsAffected = Adapter.Update(product); // Return true if precisely one row was updated, otherwise false return rowsAffected == 1; }