#region using System; using System.Data; using System.Text; #endregion namespace CSFrameworkV5.Common { /// /// 将资料表(DataTable)已修改的资料行数据去左右空格、全角转半角 /// public sealed class FieldFitString { /// /// 将资料表中已修改的资料行数据去左右空格、全角转半角 /// /// public static void FitString(DataTable dt) { //仅处理已修改的资料行 foreach (DataRow dr in dt.Rows) if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified) foreach (DataColumn C in dt.Columns) if (C.DataType == Type.GetType("System.String")) dr[C.ColumnName] = RemoveChar( ConvertEx.ToString(dr[C.ColumnName])); } /// /// 将资料表中已修改的资料行数据去左右空格、全角转半角 /// /// /// public static string RemoveChar(string str) { if (string.IsNullOrEmpty(str)) return str; try { var NewStr = string.Empty; var c = str.ToCharArray(); for (var i = 0; i < c.Length; i++) { var b = Encoding.Unicode.GetBytes(c, i, 1); if (b.Length == 2) { //全角 if (b[1] == 255 || b[1] == 48) { b[0] = (byte)(b[0] + 32); b[1] = 0; NewStr += Encoding.Unicode.GetChars(b)[0]; } else { NewStr += c[i]; } } } return NewStr.Trim(); //去左右空格 } catch { return str; } } } }