GetSchema column names
GetSchema column names
I am trying to use dotConnect Express for SQLite as a drop in replacement for System.Data.SQLite, but having a hard time, as I use the GetSchema columns extensively in my app, and the colum names are completely different - how come?
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: GetSchema column names
The GetSchema("Columns") method of dotConnect for SQLite returns its own column set.
If your application works with column names returned by the System.Data.SQLite provider, you could create a simple function that renames columns in a DataTable object so that they are named as the columns, returned by System.Data.SQLite. No other code changes are required. Here is an example of such a function:
If your application works with column names returned by the System.Data.SQLite provider, you could create a simple function that renames columns in a DataTable object so that they are named as the columns, returned by System.Data.SQLite. No other code changes are required. Here is an example of such a function:
Code: Select all
static void Main(string[] args)
{
SQLiteConnection conn = new SQLiteConnection("your connection string");
DataTable dt = GetColumns(conn);
}
static DataTable GetColumns(SQLiteConnection conn)
{
conn.Open();
var dt = conn.GetSchema("Columns");
conn.Close();
dt.Columns["Catalog"].ColumnName = "TABLE_CATALOG";
dt.Columns["Schema"].ColumnName = "TABLE_SCHEMA";
dt.Columns["Table"].ColumnName = "TABLE_NAME";
dt.Columns["Name"].ColumnName = "COLUMN_NAME";
dt.Columns["Position"].ColumnName = "ORDINAL_POSITION";
dt.Columns["HasDefaultValue"].ColumnName = "COLUMN_HASDEFAULT";
dt.Columns["DefaultValue"].ColumnName = "COLUMN_DEFAULT";
dt.Columns["Nullable"].ColumnName = "IS_NULLABLE";
dt.Columns["TypeName"].ColumnName = "DATA_TYPE";
dt.Columns["CharacterMaximumLength"].ColumnName = "CHARACTER_MAXIMUM_LENGTH";
dt.Columns["NumericPrecision"].ColumnName = "NUMERIC_PRECISION";
dt.Columns["NumericScale"].ColumnName = "NUMERIC_SCALE";
dt.Columns["IsUnique"].ColumnName = "UNIQUE";
dt.Columns["PrimaryKey"].ColumnName = "PRIMARY_KEY";
return dt;
}