Esempio n. 1
0
 /// <summary>
 /// 判斷值若是字串則去除左右空白。
 /// </summary>
 /// <param name="value">值。</param>
 public static void ValueTrim(ref object value)
 {
     if (value is string)
     {
         value = BaseFunc.CStr(value).Trim();
     }
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 /// <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("");
 }
Esempio n. 5
0
 /// <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));
     }
 }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
        /// <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);
            }
        }
Esempio n. 8
0
 /// <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)));
 }
Esempio n. 9
0
 /// <summary>
 /// 先轉型為字串再判斷是否為空字串,若為 null 也會視為空字串。
 /// </summary>
 /// <param name="s">字串。</param>
 public static bool StrIsEmpty(object s)
 {
     return(StrIsEmpty(BaseFunc.CStr(s)));
 }
Esempio n. 10
0
 /// <summary>
 /// 轉型為文字,並去除左右空白。
 /// </summary>
 /// <param name="value">要轉型的值。</param>
 public static string CStrTrim(object value)
 {
     return(BaseFunc.CStr(value).Trim());
 }
Esempio n. 11
0
 /// <summary>
 /// 轉型為文字。
 /// </summary>
 /// <param name="value">要轉型的值。</param>
 public static string CStr(object value)
 {
     return(BaseFunc.CStr(value, string.Empty));
 }
Esempio n. 12
0
 /// <summary>
 /// 取得指定名稱的參數值,並轉型為字串。
 /// </summary>
 /// <param name="name">參數名稱。</param>
 public string GetParameterAsString(string name)
 {
     return(BaseFunc.CStr(GetParameterValue(name, string.Empty)));
 }