/// <summary> /// 判斷值若是字串則去除左右空白。 /// </summary> /// <param name="value">值。</param> public static void ValueTrim(ref object value) { if (value is string) { value = BaseFunc.CStr(value).Trim(); } }
/// <summary> /// 取得無 DbNull 的欄位值,組成以指定分隔符號分隔的字串 /// </summary> /// <param name="rows">資料列陣列</param> /// <param name="fieldName">欄位名稱</param> /// <param name="delimiter">分隔符號</param> /// <param name="checkEmpty">檢查空白</param> /// <returns></returns> public static string GetFieldValues(IEnumerable <DataRow> rows, string fieldName, string delimiter, bool checkEmpty = true) { var result = string.Empty; if (rows.Count() == 0 || !HasField(rows.First(), fieldName)) { return(result); } foreach (var row in rows) { if (row.RowState != DataRowState.Deleted) { var value = BaseFunc.CStr(GetFieldValueNotDbNull(row, fieldName)); if (checkEmpty && StrFunc.StrIsEmpty(value)) { continue; } result = result.StrMerge(value, delimiter); } } return(result); }
/// <summary> /// 取得無 DbNull 的欄位值,組成以逗號分隔的字串 /// </summary> /// <param name="rows">資料列陣列</param> /// <param name="fieldName">欄位名稱</param> /// <param name="checkEmpty">檢查空白</param> /// <param name="isSqlStr">是否用單引號包起來</param> /// <param name="distinct">是否過濾同樣資料</param> /// <returns></returns> public static string GetFieldValues(IEnumerable <DataRow> rows, string fieldName, bool checkEmpty = true, bool isSqlStr = true, bool distinct = false) { string result = string.Empty; if (rows.Count() != 0) { if (HasField(rows.First(), fieldName)) { foreach (DataRow row in rows) { if (row.RowState != DataRowState.Deleted) { string value = BaseFunc.CStr(GetFieldValueNotDbNull(row, fieldName)); if (checkEmpty && StrFunc.StrIsEmpty(value)) { continue; } else { value = isSqlStr ? StrFunc.SQLStr(value) : value; if (distinct && StrFunc.StrContains(result, value)) { continue; } result += (StrFunc.StrIsNotEmpty(result) ? "," : "") + value; } } } } } return(result); }
/// <summary> /// 取得欄位值後轉型成string。 /// </summary> /// <param name="row">資料列。</param> /// <param name="fieldName">欄位名稱。</param> /// <param name="dataRowVersion">資料列版本。</param> public static string ValueAsString(this DataRow row, string fieldName, DataRowVersion dataRowVersion) { if (BaseFunc.IsNotNull(row) && DataFunc.HasField(row, fieldName)) { return(BaseFunc.CStr(row[fieldName, dataRowVersion])); } return(""); }
/// <summary> /// 是否為空值,Null 或 DBNull 皆視為空值。 /// </summary> /// <param name="value">要判斷的值。</param> public static bool IsEmpty(object value) { if (value is string) { return(StrFunc.StrIsEmpty(BaseFunc.CStr(value))); } else { return(IsNull(value)); } }
/// <summary> /// 依欄位資料型別設定欄位值 /// </summary> /// <param name="dbType"></param> /// <param name="fieldValue"></param> /// <returns></returns> public static object SetFieldValue(EFieldDbType dbType, object fieldValue) { object result = null; switch (dbType) { case EFieldDbType.String: case EFieldDbType.Text: result = BaseFunc.CStr(fieldValue); break; case EFieldDbType.Boolean: result = BaseFunc.CBool(fieldValue); break; case EFieldDbType.Integer: result = BaseFunc.CInt(fieldValue); break; case EFieldDbType.Double: result = BaseFunc.CDouble(fieldValue); break; case EFieldDbType.Currency: result = BaseFunc.CDecimal(fieldValue); break; case EFieldDbType.DateTime: result = BaseFunc.CDateTime(fieldValue); break; case EFieldDbType.GUID: result = Guid.Parse(fieldValue.ToString()); break; default: result = fieldValue; break; } return(result); }
/// <summary> /// 將傳入值轉型為指定欄位資料型別。 /// </summary> /// <param name="fieldDbType">欄位資料型別。</param> /// <param name="value">傳入值。</param> public static object CFieldValue(EFieldDbType fieldDbType, object value) { switch (fieldDbType) { case EFieldDbType.String: return(BaseFunc.CStr(value).Trim()); // 去除左右空白 case EFieldDbType.Text: return(BaseFunc.CStr(value).Trim()); // 去除左右空白 case EFieldDbType.Boolean: return(BaseFunc.CBool(value)); case EFieldDbType.Integer: return(BaseFunc.CInt(value)); case EFieldDbType.Double: return(BaseFunc.CDouble(value)); case EFieldDbType.Currency: return(BaseFunc.CDecimal(value)); case EFieldDbType.DateTime: if (BaseFunc.IsDBNull(value)) { return(value); } else { return(BaseFunc.CDateTime(value)); } case EFieldDbType.GUID: return(BaseFunc.CGuid(value)); default: return(value); } }
/// <summary> /// 將傳入值先轉型為字串,再判斷二個字串是否相等(忽略大小寫)。 /// </summary> /// <param name="s1">第一個字串。</param> /// <param name="s2">第二個字串。</param> public static bool SameText(object s1, object s2) { return(StrFunc.SameText(BaseFunc.CStr(s1), BaseFunc.CStr(s2))); }
/// <summary> /// 先轉型為字串再判斷是否為空字串,若為 null 也會視為空字串。 /// </summary> /// <param name="s">字串。</param> public static bool StrIsEmpty(object s) { return(StrIsEmpty(BaseFunc.CStr(s))); }
/// <summary> /// 轉型為文字,並去除左右空白。 /// </summary> /// <param name="value">要轉型的值。</param> public static string CStrTrim(object value) { return(BaseFunc.CStr(value).Trim()); }
/// <summary> /// 轉型為文字。 /// </summary> /// <param name="value">要轉型的值。</param> public static string CStr(object value) { return(BaseFunc.CStr(value, string.Empty)); }
/// <summary> /// 取得指定名稱的參數值,並轉型為字串。 /// </summary> /// <param name="name">參數名稱。</param> public string GetParameterAsString(string name) { return(BaseFunc.CStr(GetParameterValue(name, string.Empty))); }