使用:
using var con = new SQLiteConnection(Connection);//Connection是数据库地址
AddColumn(con, 表名称, 字段名称, 字段类型);
实现:
/// <summary>
/// 表中是否有这个字段,没有则添加
/// </summary>
/// <param name="table"></param>
/// <param name="column"></param>
/// <param name="type"></param>
private void AddColumn(SQLiteConnection connection, string table, string column, string type)
{
try
{
if (IsFieldExists(table, column, connection) == false)
{
AddFieldToTable(table, column, type, connection);
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().WriteLog(ex);
}
}
/// <summary>
/// 查看表中是否有某个字段 没有则返回false
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="fieldName">字段名</param>
/// <param name="connection"></param>
/// <returns></returns>
public bool IsFieldExists(string tableName, string fieldName, SQLiteConnection connection)
{
try
{
string query = $"PRAGMA table_info({tableName})";
var columns = connection.Query<dynamic>(query);
foreach (var column in columns)
{
if (column.name.Equals(fieldName, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().WriteLog(ex);
}
return false;
}
/// <summary>
/// 在表中添加字段
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="fieldName">字段名</param>
/// <param name="fieldType">字段类型</param>
/// <param name="connection"></param>
public void AddFieldToTable(string tableName, string fieldName, string fieldType, SQLiteConnection connection)
{
try
{
string query = $"ALTER TABLE {tableName} ADD COLUMN {fieldName} {fieldType}";
connection.Execute(query);
}
catch (Exception ex)
{
LogHelper.GetSingleObj().WriteLog(ex);
}
}
9万+

被折叠的 条评论
为什么被折叠?



