Ejemplo n.º 1
0
        /// <summary>
        /// Return column names for text files
        /// </summary>
        /// <param name="FileName">Name of the text file being imported</param>
        /// <returns></returns>
        internal override Dictionary <string, DBColumn> GetColumns(string FileName)
        {
            Dictionary <string, DBColumn> columns = new Dictionary <string, DBColumn>();
            StreamReader sr;

            try
            {
                sr = new StreamReader(FileName);
            }
            catch (Exception ex)
            {
                Common.ShowMsg(string.Format("Cannot Open File {0}\r\nError: {1}", FileName, ex.Message));
                return(columns);
            }

            string line = sr.ReadLine();

            sr.Close();

            string[] col = SplitLine(line, -1, Delimiter, TextQualifier);
            int      i;

            for (i = 0; i < col.Length; i++)
            {
                DBColumn dbc = new DBColumn();
                columns.Add(FirstRowHasHeadings ? col[i] : string.Format("Column {0}", i.ToString()), dbc);
            }

            return(columns);
        }
Ejemplo n.º 2
0
        internal override Dictionary <string, DBColumn> GetColumns(string TableName)
        {
            SQLiteErrorCode returnCode;

            string    sql = string.Format("Pragma table_info(\"{0}\")", TableName);
            DataTable dt  = DataAccess.ExecuteDataTable(DatabaseName, sql, out returnCode);

            Dictionary <string, DBColumn> DBColumns = new Dictionary <string, DBColumn>();

            int i = 0;

            foreach (DataRow dr in dt.Rows)
            {
                DBColumn dbc = new DBColumn()
                {
                    Name = dr["name"].ToString()
                };
                dbc.Type       = dr["type"].ToString();
                dbc.IsNullable = dr["notnull"].ToString() == "0" ? true : false;
                DBColumns.Add(dbc.Name, dbc);
                i++;
            }

            return(DBColumns);
        }
Ejemplo n.º 3
0
        internal override Dictionary <string, DBColumn> GetColumns(string TableName)
        {
            Dictionary <string, DBColumn> DBColumns = new Dictionary <string, DBColumn>();

            if (conn == null || conn.State != ConnectionState.Open)
            {
                OpenDB();
            }

            OleDbCommand cmd = new OleDbCommand();

            cmd.Connection  = conn;
            cmd.CommandText = string.Format("Select * From [{0}]", TableName);
            OleDbDataReader OleDbdr = cmd.ExecuteReader(CommandBehavior.SingleRow);

            OleDbdr.Read();
            DataTable ColumnList = OleDbdr.GetSchemaTable();
            int       i          = 0;

            foreach (DataRow dr in ColumnList.Rows)
            {
                DBColumn dbc = new DBColumn()
                {
                    Name = dr["ColumnName"].ToString()
                };
                dbc.Ordinal          = (int)dr["ColumnOrdinal"];
                dbc.Type             = dr["DataType"].ToString();
                dbc.SqlType          = OleDbdr.GetDataTypeName(dbc.Ordinal);
                dbc.Size             = (int)dr["ColumnSize"];
                dbc.NumericPrecision = Convert.ToInt32(dr["NumericPrecision"]);
                dbc.NumericScale     = Convert.ToInt32(dr["NumericScale"]);
                dbc.IsLong           = (bool)dr["IsLong"];
                dbc.IsNullable       = (bool)dr["AllowDBNull"];
                dbc.IsUnique         = (bool)dr["IsUnique"];
                dbc.IsKey            = (bool)dr["IsKey"];
                dbc.IsAutoIncrement  = (bool)dr["IsAutoIncrement"];
                DBColumns.Add(dbc.Name, dbc);
                i++;
            }

            // Limit result to the current table
            string[] restrictionValues = new string[4];
            restrictionValues[2] = TableName;

            ColumnList = conn.GetSchema("Columns", restrictionValues);

            foreach (DataRow dr in ColumnList.Rows)
            {
                DBColumn dbc = DBColumns[dr["COLUMN_NAME"].ToString()];
                dbc.HasDefault        = (bool)dr["COLUMN_HASDEFAULT"];
                dbc.DefaultValue      = dr["COLUMN_DEFAULT"] is DBNull ? string.Empty : dr["COLUMN_DEFAULT"].ToString();
                dbc.DatetimePrecision = dr["DATETIME_PRECISION"] is DBNull ? 0 : Convert.ToInt32(dr["DATETIME_PRECISION"]);
                DBColumns[dr["COLUMN_NAME"].ToString()] = dbc;
            }

            CloseDB();
            return(DBColumns);
        }
Ejemplo n.º 4
0
        internal override Dictionary <string, DBColumn> GetColumns(string TableName)
        {
            Dictionary <string, DBColumn> DBColumns = new Dictionary <string, DBColumn>();
            IDataReader sqldr;

            if (conn == null || conn.State != ConnectionState.Open)
            {
                OpenDB();
            }

            IDbCommand cmd = (IDbCommand)assMySql.CreateInstance(MySqlCommandClass, true);

            cmd.Connection  = conn;
            cmd.CommandText = string.Format("Select * From `{0}`", TableName);
            try
            {
                sqldr = cmd.ExecuteReader(CommandBehavior.SingleRow);
            }
            catch (Exception ex)
            {
                CloseDB();
                throw new Exception(ex.Message);
            }

            try
            {
                sqldr.Read();
                DataTable ColumnList = sqldr.GetSchemaTable();
                int       i          = 0;
                foreach (DataRow dr in ColumnList.Rows)
                {
                    DBColumn dbc = new DBColumn()
                    {
                        Name = dr["ColumnName"].ToString()
                    };
                    dbc.Ordinal          = (int)dr["ColumnOrdinal"];
                    dbc.Type             = dr["DataType"].ToString();
                    dbc.SqlType          = sqldr.GetDataTypeName(dbc.Ordinal - 1);
                    dbc.Size             = (int)dr["ColumnSize"];
                    dbc.NumericPrecision = Convert.ToInt32(dr["NumericPrecision"]);
                    dbc.NumericScale     = Convert.ToInt32(dr["NumericScale"]);
                    dbc.IsLong           = (bool)dr["IsLong"];
                    dbc.IsNullable       = (bool)dr["AllowDBNull"];
                    dbc.IsUnique         = (bool)dr["IsUnique"];
                    dbc.IsKey            = (DBNull.Value.Equals(dr["IsKey"])) ? false : (bool)dr["IsKey"];
                    dbc.IsAutoIncrement  = (bool)dr["IsAutoIncrement"];
                    DBColumns.Add(dbc.Name, dbc);
                    i++;
                }
                sqldr.Close();
            }
            catch (Exception ex)
            {
                sqldr.Close();
                throw new Exception(ex.Message);
            }
            finally { CloseDB(); }

            /*
             * // Limit result to the current table
             * string[] restrictionValues = new string[4];
             * restrictionValues[2] = TableName;
             *
             * ColumnList = conn.GetSchema("Columns", restrictionValues);
             *
             * foreach (DataRow dr in ColumnList.Rows)
             * {
             *
             *  DBColumn dbc = DBColumns[dr["COLUMN_NAME"].ToString()];
             *  dbc.HasDefault = (bool)dr["COLUMN_HASDEFAULT"];
             *  dbc.DefaultValue = dr["COLUMN_DEFAULT"] is DBNull ? string.Empty : dr["COLUMN_DEFAULT"].ToString();
             *  dbc.DatetimePrecision = dr["DATETIME_PRECISION"] is DBNull ? 0 : Convert.ToInt32(dr["DATETIME_PRECISION"]);
             *  DBColumns[dr["COLUMN_NAME"].ToString()] = dbc;
             * }
             */
            return(DBColumns);
        }