之前我们学的一直是SQL Server数据库,而且使用比较常见,但是昨天在做C#的时候有接触了一种新的数据库SQLite。首先对此进行一个小小的介绍。
SQLite是一种文本型数据库,实现了自给自足的、无服务器、零配置的、事务性的SQL数据库引擎,这意味着与其他数据库一样,您不需要在系统中配置。就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
数据库不一样那么在应用配置的时候自然就会出现不必要的错误,而且还是很难察觉的错误
C#中连接SQLite的代码:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SQLite;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//获取结果集
public static DataTable GetDataTable(string sql,params SQLiteParameter[] ps)
{
using (SQLiteConnection conn=new SQLiteConnection(connStr))
{
//构造适配器对象
SQLiteDataAdapter adapter=new SQLiteDataAdapter(sql,conn);
//构造数据表,用于接收查询结果
DataTable dt=new DataTable();
//添加参数
adapter.SelectCommand.Parameters.AddRange(ps);
//执行结果
adapter.Fill(dt);
//返回结果集
return dt;
}
}
C#中连接SQL Server的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data.Sql;
using System.Data;
using System.Data.SqlClient;
//获取结果实例
public static DataTable GetDataTable(string sql, params SQLiteParameter[] ps)
{
//SqlConnection
using (SqlConnection conn = new SqlConnection(connStr))
{
//构造适配器对象
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
//构造数据表,用于接受查询结果
DataTable dt = new DataTable();
//添加参数
adapter.SelectCommand.Parameters.AddRange(ps);
//执行结果
adapter.Fill(dt);
//返回结果集
return dt;
}
}
代码中有几处不同之处:
1)引用对象不同,SQLite数据库引用的是using system data.sqlite,而SQL Server引用的是using system data.sql。
2)实例化的对象不同,SQL Server中SqlConnection conn = new SqlConnection(connStr)
SQLite中SQLiteConnection conn=new SQLiteConnection(connStr)
两种不同都遵循了一个原则,那就是一致性原则,用什么数据库在创建爱你对象的时候就要相应的使用对应数据库的方式,否则就会产生错误。