/// <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); }
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); }
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); }
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); }