.net 4.0
引用System.Data.SQLite
using System;
using System.Configuration;using System.Data;
using System.Data.Common;
using System.Data.SQLite;
namespace sqlite
{
class Program
{
static void Main(string[] args)
{
try
{
if (ColumnIsExist("column1"))
{
Console.WriteLine("存在列");
}
DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite");
using (DbConnection conn = fact.CreateConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["sqlite"].ConnectionString;
conn.Open();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "alter table Devices add column1 int";
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Console.Read();
}
}
public static bool ColumnIsExist(string columnName)
{
bool result = false;
try
{
string connectionStr = string.Format("Data Source = {0}", AppDomain.CurrentDomain.BaseDirectory + "HammerDB.db");
using (SQLiteConnection connection = new SQLiteConnection(connectionStr))
{
connection.Open();
using (SQLiteCommand cmd = connection.CreateCommand())
{
cmd.CommandText = "select * from Devices";
cmd.CommandType = CommandType.Text;
SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
if (dt != null)
{
DataColumnCollection columns = dt.Columns;
foreach (DataColumn item in columns)
{
if (item.ToString() == "column1")
{
result = true;
break;
}
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Console.Read();
}
return result;
}
}
}
配置文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.93.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="sqlite" connectionString="Data Source=|DataDirectory|\HammerDB.db;Pooling=true;FailIfMissing=false"
providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>