#region
|
|
using System;
|
using System.Data;
|
using System.Text;
|
|
#endregion
|
|
namespace CSFrameworkV5.Common
|
{
|
/// <summary>
|
/// 将资料表(DataTable)已修改的资料行数据去左右空格、全角转半角
|
/// </summary>
|
public sealed class FieldFitString
|
{
|
/// <summary>
|
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
|
/// </summary>
|
/// <param name="dt"></param>
|
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]));
|
}
|
|
/// <summary>
|
/// 将资料表中已修改的资料行数据去左右空格、全角转半角
|
/// </summary>
|
/// <param name="str"></param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
}
|
}
|