在这使用到 DataTable 进行数据库元素的取操作,增删查改操作类似
SQLiteManager工具类
using System;
using System.Data;
using System.Data.SQLite;
namespace TestSQLite0424
{
public class SQLiteManager
{
private static readonly object lockHelper = new object();
static string connectString = @"Data Source=" + Environment.CurrentDirectory + "\\SQLite.db;";
static volatile SQLiteConnection conn = null;
public static SQLiteConnection GetConn(string connstr)
{
if (conn == null)
{
try
{
lock (lockHelper)
{
if (conn == null)
{
conn = new SQLiteConnection(connectString); //新建一个连接
conn.Open(); //打开连接,如果sqlite.db存在就正常打开,如果不存在则创建一个SQLite.db文件
}
}
}
catch (SQLiteException ex)
{
}
}
return conn;
}
public static bool InsertSQL(string sql)
{
bool rs = false;
SQLiteConnection con = GetConn(connectString);
try
{
////con.Open();
SQLiteCommand cmd = new SQLiteCommand(sql, con);
int rs_ = cmd.ExecuteNonQuery();
if (rs_ > 0)
{
rs = true;
}
}
catch (SQLiteException ex)
{
}
finally
{
//con.Close();
}
return rs;
}
public static bool UpdateSQL(string sql)
{
bool rs = false;
SQLiteConnection con = GetConn(connectString);
try
{
//con.Open();
SQLiteCommand cmd = new SQLiteCommand(sql, con);
int rs_ = cmd.ExecuteNonQuery();
if (rs_ > 0)
{
rs = true;
}
}
catch (SQLiteException ex)
{
}
finally
{
//con.Close();
}
return rs;
}
public static DataTable QuerySQL(string sql, SQLiteParameter[] parameters)
{
DataTable dt = new DataTable();
SQLiteConnection con = GetConn(connectString);
try
{
//con.Open(); //打开连接,如果sqlite.db存在就正常打开,如果不存在则创建一个SQLite.db文件
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = sql; //数据库中要事先有个orders表
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
if (parameters != null)
{
cmd.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
dt = new DataTable();
adapter.Fill(dt);
}
catch (SQLiteException ex)
{
}
finally
{
//con.Close();
}
return dt;
}
}
}
对数据库元素进行“查”操作实例
using System;
using System.Data;
namespace TestSQLite0424
{
class Program
{
static void Main(string[] args)
{
string sql = "select name,age,sex from person_info order by create_time asc limit 1";
DataTable dtpers = SQLiteManager.QuerySQL(sql, null);
if(dtpers.Rows.Count>0)
{
string name=Object2String( dtpers.Rows[0][0]); //第一行第一列
string age = Object2String(dtpers.Rows[0][1]); //第一行第二列
string sex = Object2String(dtpers.Rows[0][2]); //第一行第三列
}
Console.WriteLine("查库结束");
Console.ReadKey();
}
/// <summary>
/// 将 object 转换成 string
/// </summary>
/// <param name="v"></param>
/// <returns></returns>
private static string Object2String(object o)
{
try
{
return Convert.ToString(o);
}
catch
{
return "";
}
}
}
}