예제 #1
0
 public SQLBuilder(string Tablename, DBMSTypes DBMSType)
 {
     pTablename = Tablename;
     Columns = new Dictionary<string, SQLColumnDefinition>();
     ColumnNames = new List<string>();
     pDBMSType = DBMSType;
     nfi = new System.Globalization.CultureInfo("en-US", false).NumberFormat;
     nfi.NumberGroupSeparator = "";
 }        
예제 #2
0
        public string DBValueString(DBMSTypes DBMSType, System.Globalization.NumberFormatInfo nfi)
        {
            string strValue;

            if ((Value == null || Value.Equals(DBNull.Value)) && this.AllowNull)
                return "NULL";

            switch (SQLType)
            {
                case SQLBuilderTypes.sqlString:
                case SQLBuilderTypes.sqlChar:
                    strValue = Strings.GetSafeString(Value);
                    if (MaxLen > 0)
                        strValue = Strings.StrLeft(strValue, MaxLen);

                    if (AllowNull)
                        strValue = Strings.ConvertNullSQL(strValue);
                    else
                        strValue = "\'" + Strings.DoubleQuotes(strValue) + "\'";

                    break;

                case SQLBuilderTypes.sqlInt:
                    if (Strings.IsNumeric(Value))
                        strValue = System.Convert.ToInt32(Value).ToString(nfi);
                    else
                    {
                        if (AllowNull)
                            strValue = "NULL";
                        else
                            strValue = System.Convert.ToInt32(DefaultValue).ToString(nfi);
                    }

                    break;

                case SQLBuilderTypes.sqlFloat:
                case SQLBuilderTypes.sqlMoney:
                    if (Strings.IsNumeric(Value))
                    {
                        strValue = System.Convert.ToDouble(Value).ToString(nfi);
                    }
                    else
                    {
                        if (AllowNull)
                            strValue = "NULL";
                        else
                            strValue = System.Convert.ToDouble(DefaultValue).ToString(nfi);
                    }

                    break;

                case SQLBuilderTypes.sqlBool:
                    if (DBMSType == DBMSTypes.MSSQLServer)
                        strValue = Strings.Bool2Int(System.Convert.ToBoolean(Value)).ToString();
                    else
                        strValue = System.Convert.ToBoolean(Value).ToString(nfi).ToUpper();
                    break;


                case SQLBuilderTypes.sqlDate:
                    if (Strings.IsDate(Value))
                    {
                        if (AllowNull && (DateTime)Value == DateTime.MinValue)
                            strValue = "NULL";
                        else
                            strValue = Strings.SQLDateTime(System.Convert.ToDateTime(Value), DBMSType == DBMSTypes.MSSQLServer);
                    }
                    else
                    {
                        if (AllowNull || !Strings.IsDate(DefaultValue))
                            strValue = "NULL";
                        else
                            strValue = Strings.SQLDateTime(System.Convert.ToDateTime(DefaultValue), DBMSType == DBMSTypes.MSSQLServer);
                    }
                    break;

                case SQLBuilderTypes.sqlMemo:
                    strValue = Strings.GetSafeString(Value);
                    if (AllowNull)
                        strValue = Strings.ConvertNullSQL(strValue);
                    else
                        strValue = "\'" + Strings.DoubleQuotes(strValue) + "\'";

                    break;

                default:
                    strValue = "NULL";
                    break;
            }

            return strValue;
        }
예제 #3
0
        public object DBValue(DBMSTypes DBMSType)
        {
            if ((Value == null || Value.Equals(DBNull.Value)) && this.AllowNull)
                return DBNull.Value;

            switch (SQLType)
            {
                case SQLBuilderTypes.sqlString:
                case SQLBuilderTypes.sqlChar:
                    string strValue = Strings.GetSafeString(Value);

                    if (strValue.Length == 0 && this.AllowNull)
                        return DBNull.Value;

                    if (MaxLen > 0)
                        strValue = Strings.StrLeft(strValue, MaxLen);

                    return strValue;

                case SQLBuilderTypes.sqlInt:
                    if (Strings.IsNumeric(Value))
                        return System.Convert.ToInt32(Value);
                    else
                    {
                        if (AllowNull)
                            return DBNull.Value;
                        else
                            return DefaultValue;
                    }

                case SQLBuilderTypes.sqlFloat:
                case SQLBuilderTypes.sqlMoney:
                    if (Strings.IsNumeric(Value))
                        return System.Convert.ToDouble(Value);
                    else
                    {
                        if (AllowNull)
                            return DBNull.Value;
                        else
                            return DefaultValue;
                    }

                case SQLBuilderTypes.sqlBool:
                    if (DBMSType == DBMSTypes.MSSQLServer)
                        return Strings.Bool2Int(System.Convert.ToBoolean(Value));
                    else
                        return System.Convert.ToBoolean(Value);


                case SQLBuilderTypes.sqlDate:
                    if (Strings.IsDate(Value))
                    {
                        if (AllowNull && (DateTime)Value == DateTime.MinValue)
                            return DBNull.Value;
                        else
                            return Value;
                    }
                    else
                    {
                        if (AllowNull || !Strings.IsDate(DefaultValue))
                            return DBNull.Value;
                        else
                            return Value;
                    }

                case SQLBuilderTypes.sqlMemo:
                    string strValueMemo = Strings.GetSafeString(Value);

                    if (strValueMemo.Length == 0 && this.AllowNull)
                        return DBNull.Value;

                    return strValueMemo;

                default:
                    return DBNull.Value;
            }

        }