/// <summary> /// 数据源清理掉未正式添加的行,即行状态为Detached的行 /// </summary> public static void Clear_DetachedRows(RjCtrlLib.RjBindingSource _rjBindingSource) { if (_rjBindingSource != null && (_rjBindingSource.Current as DataRowView) != null && (_rjBindingSource.Current as DataRowView).Row.RowState == DataRowState.Detached ) { _rjBindingSource.Delete(); } }
/// <summary> /// 按字节数做最大长度验证,超出长度限制则提示并返回true /// </summary> public static bool MaxLengthCheck(RjCtrlLib.RjBindingSource rjBindingSource) { DataSet ds = (rjBindingSource.DataSource as DataSet); if (ds == null || !ds.Tables.Contains(rjBindingSource.DataMember)) { return(false); } DataTable dt = ds.Tables[rjBindingSource.DataMember]; foreach (DataColumn dtCol in dt.Columns) { if (dtCol.DataType.Name == "String" && dtCol.MaxLength > 0 && !dtCol.ReadOnly) { foreach (DataRow dr in dt.Rows) { //如果字符串的长度,按字节数算,超出了最大长度,则提醒长度超出限制 if (Encoding.Default.GetBytes(Convert.ToString(dr[dtCol.ColumnName])) .Length > dtCol.MaxLength) { string strAlert; if (rjBindingSource.GridView != null && rjBindingSource.GridView.Columns[dtCol.ColumnName] != null) { strAlert = string.Format("{0}列内容“{1}”长度超出限制", rjBindingSource.GridView.Columns[dtCol.ColumnName].Caption, dr[dtCol.ColumnName]); } else { strAlert = string.Format("{0}列内容“{1}”长度超出限制", dtCol.ColumnName, dr[dtCol.ColumnName]); } XtraMessageBox.Show(strAlert, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return(true); } } } } return(false); }