sqlite连接
2016-05-17 10:02
141 查看
.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>
引用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>
相关文章推荐
- 从cmd中进入MySQL的命令界面
- CI框架出现mysql数据库连接资源无法释放的解决方法
- 在SQL Server里我们为什么需要意向锁(Intent Locks)?
- 高性能MySql学习笔记——锁、事务、隔离级别
- MySQL 存储引擎 从Myiam 转innodb 的好处
- Oracle(miss right parenthesit)
- mysql日期格式化
- Oracle数据库概述
- mysql基础命令
- mysql 存储过程 事务处理 (转)
- 打开MySQL数据库远程访问的权限
- MySQL数据类型
- MySQL基础操作汇总
- Oracle V$SESSION详解
- mysql中如何获取当前时间以及对时间的处理函数
- 数据库迁移问题
- Oracle 动态性能视图之V$LOCK
- MySQL 实例
- CI框架中数据库操作函数$this->db->where()相关用法总结
- Oracle utl_file读取csv文件到数据库