コード例 #1
0
        // Return sql data types:
        public static string[,] SQLDataTypes(string pathtocsv, Int32 norowsreview, char sep)
        {
            // "c:\\PathToFile\\data.csv"
            DataTable dt = CSVReader.csvToDataTable(pathtocsv, norowsreview, sep);

            string[,] sqldatatype_array = new string[2, dt.Columns.Count];

            try
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    //// Basic logic should goes here:
                    // Check bool type
                    if (DataTypeIdentifier.IsBoolType(dt, i))
                    {
                        sqldatatype_array[0, i] = "bit";
                        sqldatatype_array[1, i] = dt.Columns[i].ToString();
                        continue;
                    }
                    // Check int type
                    else if (DataTypeIdentifier.IsIntType(dt, i))
                    {
                        sqldatatype_array[0, i] = "int";
                        sqldatatype_array[1, i] = dt.Columns[i].ToString();
                        continue;
                    }
                    // Check double
                    else if (DataTypeIdentifier.IsDoubleType(dt, i))
                    {
                        sqldatatype_array[0, i] = "float";
                        sqldatatype_array[1, i] = dt.Columns[i].ToString();
                        continue;
                    }
                    // check date
                    else if (DataTypeIdentifier.IsDateType(dt, i))
                    {
                        sqldatatype_array[0, i] = "date";
                        sqldatatype_array[1, i] = dt.Columns[i].ToString();
                        continue;
                    }
                    // check datetime
                    else if (DataTypeIdentifier.IsDateTimeType(dt, i))
                    {
                        sqldatatype_array[0, i] = "datetime";
                        sqldatatype_array[1, i] = dt.Columns[i].ToString();
                        continue;
                    }
                    // else string
                    else
                    {
                        Int32 varcharLength = maxStringLength(dt, i);
                        sqldatatype_array[0, i] = "varchar(" + varcharLength + ")";
                        sqldatatype_array[1, i] = dt.Columns[i].ToString();
                        continue;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message.ToString());
                Environment.Exit(1);
            }
            return(sqldatatype_array);
        }