public static String GetCodingType(String strTableName, String strCol)
        {
            string typestr;

            String strColumnDataType = DataStructureProvider.GetColumnDataType(strTableName, strCol);

            strColumnDataType = strColumnDataType.ToLower();

            if (strColumnDataType.Contains("char") || strColumnDataType.Contains("text"))
            {
                return("String");
            }

            if (strColumnDataType.Contains("uniqueidentifier"))
            {
                if (DataStructureProvider.IsColumnAllowNull(strTableName, strCol))
                {
                    return("Nullable<Guid>");
                }
                return("Guid");
            }

            if (strColumnDataType.Contains("int") || strColumnDataType.Contains("numeric"))
            {
                if (DataStructureProvider.IsColumnAllowNull(strTableName, strCol))
                {
                    return("Nullable<int>");
                }

                return("int");
            }
            if (strColumnDataType.Contains("float") || strColumnDataType.Contains("double") || strColumnDataType.Contains("decimal") || strColumnDataType.Contains("real"))
            {
                //if ( DataStructureProvider.IsColumnAllowNull( strTableName , strCol ) )
                //    return "Nullable<double>";
                return("double");
            }

            if (strColumnDataType.Contains("date") || strColumnDataType.Contains("time"))
            {
                if (DataStructureProvider.IsColumnAllowNull(strTableName, strCol))
                {
                    return("Nullable<DateTime>");
                }

                return("DateTime");
            }

            if (strColumnDataType.Contains("bit") || strColumnDataType.Contains("bool"))
            {
                //if ( DataStructureProvider.IsColumnAllowNull( strTableName , strCol ) )
                //    return "Nullable<bool>";
                return("bool");
            }

            if (strColumnDataType.Contains("image") || strColumnDataType.Contains("binary"))
            {
                return("byte[]");
            }

            switch (strColumnDataType)
            {
            case "varchar":
            case "nchar":
            case "nvarchar":
            case "text":
            case "ntext":
            case "char":
                typestr = "String";
                break;

            case "int":
            case "bigint":
            case "numeric":
                typestr = "int";
                break;

            case "float":
            case "real":
                typestr = "double";
                break;

            case "decimal":
                typestr = "decimal";
                break;

            case "datetime":
            case "smalldatetime":
                typestr = "DateTime";
                break;

            case "bit":
                typestr = "bool";
                break;

            case "image":
            case "varbinary":
                typestr = "byte[]";
                break;

            default:
                typestr = "_UNKNOWN_";
                break;
            }

            if (DataStructureProvider.IsColumnAllowNull(strTableName, strCol) && typestr.Equals("DateTime"))
            {
                return(string.Format("Nullable<{0}>", typestr));
            }
            else
            {
                return(typestr);
            }
        }