#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;
}
}
}
}