예제 #1
0
        public string[] SplitDataString(string columnData)
        {
            List <string> data = new List <string>();

            if (FieldType == "bit")
            {
                foreach (char c in columnData)
                {
                    data.Add(c.ToString());
                }
                return(data.ToArray());
            }
            else if (FieldType == "int" || FieldType == "real" || FieldType == "money" || FieldType == "datetime" || FieldType == "smalldatetime" || Regex.IsMatch(FieldType, @"^decimal\(\d+,\d+\)$"))
            {
                string[] array = columnData.Split("¤".ToCharArray());
                return(array);
            }
            else if (FieldType.Contains("varchar"))
            {
                string[] array = columnData.Split("¤".ToCharArray());
                return(array);
            }

            throw new NotImplementedException("Typen " + FieldType + " tas inte om hand i SplitDataString.");
        }
예제 #2
0
        public string DeSerializeData(string value)
        {
            if (FieldType == "bit")
            {
                if (value == "n")
                {
                    return("null");
                }
                else
                {
                    return(value);
                }
            }
            else if (FieldType == "int" || FieldType == "real" || FieldType == "money" || Regex.IsMatch(FieldType, @"^decimal\(\d+,\d+\)$"))
            {
                if (value == "")
                {
                    return("null");
                }
                else
                {
                    return(value);
                }
            }
            else if (FieldType == "datetime")
            {
                if (value == "")
                {
                    return("null");
                }
                else
                {
                    DateTime dateTime = DateTime.FromBinary(long.Parse(value));
                    return("'" + dateTime.ToString("yyyy-MM-dd HH:mm:ss:fff") + "'");
                }
            }
            else if (FieldType == "smalldatetime")
            {
                if (value == "")
                {
                    return("null");
                }
                else
                {
                    DateTime dateTime = DateTime.FromBinary(long.Parse(value));
                    return("'" + dateTime.ToString("yyyy-MM-dd HH:mm") + "'");
                }
            }
            else if (FieldType.Contains("varchar"))
            {
                if (value == "")
                {
                    return("null");
                }
                else
                {
                    string s = value.Substring(1, value.Length - 2);
                    s = s.Replace("\\¤", "¤").Replace("\\[", "[").Replace("'", "''").Replace("\r\n", "' + char(13) + char(10) + '").Replace("\n", "' + char(10) + '");
                    return("'" + s + "'");
                }
            }

            throw new NotImplementedException("Typen " + FieldType + " tas inte om hand i DeSerializeData.");
        }
예제 #3
0
        public string SerializeData(object oData)
        {
            if (FieldType == "bit")
            {
                if (oData is DBNull)
                {
                    return("n");
                }
                else
                {
                    return(((bool)oData) ? "1" : "0");
                }
            }
            else if (FieldType == "int")
            {
                if (oData is DBNull)
                {
                    return("¤");
                }
                else
                {
                    return(Convert.ToInt32(oData).ToString() + "¤");
                }
            }
            else if (FieldType == "real")
            {
                if (oData is DBNull)
                {
                    return("¤");
                }
                else
                {
                    return(Convert.ToDouble(oData).ToString().Replace(",", ".") + "¤");
                }
            }
            else if (FieldType == "money")
            {
                if (oData is DBNull)
                {
                    return("¤");
                }
                else
                {
                    return(Convert.ToDecimal(oData).ToString("0.####").Replace(",", ".") + "¤");
                }
            }
            else if (Regex.IsMatch(FieldType, @"^decimal\(\d+,\d+\)$"))   // decimal (x,y)
            {
                if (oData is DBNull)
                {
                    return("¤");
                }
                else
                {
                    return(Convert.ToDecimal(oData).ToString().Replace(",", ".") + "¤");
                }
            }
            else if (FieldType == "datetime" || FieldType == "smalldatetime")
            {
                if (oData is DBNull)
                {
                    return("¤");
                }
                else
                {
                    return(((DateTime)oData).ToBinary().ToString() + "¤");
                }
            }
            else if (FieldType.Contains("varchar"))
            {
                if (oData is DBNull)
                {
                    return("¤");
                }
                else
                {
                    return("\"" + oData.ToString().Replace("¤", "\\¤").Replace("[", "\\[") + "\"¤");
                }
            }

            throw new NotImplementedException("Typen " + FieldType + " tas inte om hand i SerializeData.");
        }