SQLite.NET 检查列是否存在于 table
SQLite.NET Check if column exists in table
我创建了以下方法,在现有的 SQLite 中添加一列 table
public async void AddColumnMyNewColumn()
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
await conn.ExecuteAsync("ALTER TABLE MyTable ADD COLUMN MyNewColumn bit DEFAULT 'False';");
}
它在 MyTable 中创建了一个新列 MyNewColumn。
下次调用 AddColumnMyNewColumn 方法时,它会抛出错误。
如何查看此列是否已创建??
我已经检查过 this,and this,但我无法将这些东西放在一起得到这样的东西..
public async void AddColumnMyNewColumn()
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
bool columnExists;
//Check if column exists & set columnExists accordingly
if(!columnExists)
await conn.ExecuteAsync("ALTER TABLE MyTable ADD COLUMN MyNewColumn bit DEFAULT 'False';");
}
解决方案 1. 使用 SQLite.Net
您正在使用 SQLite.Net,因此您的 Table 已映射到 C# Class,对吧?
如果你添加一个 属性 到你的 C# Class 你可以调用这个
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
await conn.CreateTableAsync<MyTableClass>();
并且您的新 属性 将作为一列添加到您的 Table,所有以前的数据都不会更改
解决方案 2. 使用查询
(列出 table 的所有列)然后您可以手动添加您的列)
SQLite Schema Information Metadata
使用 SQLite.net 可以很容易地知道列是否存在,以防您确实需要它:
var tableInfo = connection.GetTableInfo("YourTable");
var columnExists = tableInfo.Any(x => x.Name.Equals("ColumnName"));
但如前所述,connection.CreateTable<T>()
或 connection.CreateTableAsync<T>()
将为您添加新列,因此您无需执行 sql 语句。
我创建了以下方法,在现有的 SQLite 中添加一列 table
public async void AddColumnMyNewColumn()
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
await conn.ExecuteAsync("ALTER TABLE MyTable ADD COLUMN MyNewColumn bit DEFAULT 'False';");
}
它在 MyTable 中创建了一个新列 MyNewColumn。
下次调用 AddColumnMyNewColumn 方法时,它会抛出错误。
如何查看此列是否已创建??
我已经检查过 this,and this,但我无法将这些东西放在一起得到这样的东西..
public async void AddColumnMyNewColumn()
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
bool columnExists;
//Check if column exists & set columnExists accordingly
if(!columnExists)
await conn.ExecuteAsync("ALTER TABLE MyTable ADD COLUMN MyNewColumn bit DEFAULT 'False';");
}
解决方案 1. 使用 SQLite.Net
您正在使用 SQLite.Net,因此您的 Table 已映射到 C# Class,对吧?
如果你添加一个 属性 到你的 C# Class 你可以调用这个
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(path);
await conn.CreateTableAsync<MyTableClass>();
并且您的新 属性 将作为一列添加到您的 Table,所有以前的数据都不会更改
解决方案 2. 使用查询
(列出 table 的所有列)然后您可以手动添加您的列)
SQLite Schema Information Metadata
使用 SQLite.net 可以很容易地知道列是否存在,以防您确实需要它:
var tableInfo = connection.GetTableInfo("YourTable");
var columnExists = tableInfo.Any(x => x.Name.Equals("ColumnName"));
但如前所述,connection.CreateTable<T>()
或 connection.CreateTableAsync<T>()
将为您添加新列,因此您无需执行 sql 语句。