1 using System;
2 using System.Collections.Generic;
3 using System.Configuration;
4 using System.Data;
5 using System.Data.SQLite;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9
10 namespace CaterDal
11 {
12 public static class SqliteHelper
13 {
14 //从配置文本中读取连接字符串
15 private static string connStr = ConfigurationManager.ConnectionStrings["itcastCater"].ConnectionString;
16
17 //执行命令的方法:insert,update,delete
18 //params:可变参数,目的是省略了手动构造数组的过程,直接指定对象,编译器会帮助我们构造数组,并将对象加入数组中,传递过来
19 public static int ExecuteNonQuery(string sql,params SQLiteParameter[] ps)
20 {
21 //创建连接对象
22 using (SQLiteConnection conn=new SQLiteConnection(connStr))
23 {
24 //创建命令对象
25 SQLiteCommand cmd=new SQLiteCommand(sql,conn);
26 //添加参数
27 cmd.Parameters.AddRange(ps);
28 //打开连接
29 conn.Open();
30 //执行命令,并返回受影响的行数
31 return cmd.ExecuteNonQuery();
32 }
33 }
34
35 //获取首行首列值的方法
36 public static object ExecuteScalar(string sql, params SQLiteParameter[] ps)
37 {
38 using (SQLiteConnection conn=new SQLiteConnection(connStr))
39 {
40 SQLiteCommand cmd=new SQLiteCommand(sql,conn);
41
42 cmd.Parameters.AddRange(ps);
43
44 conn.Open();
45 //执行命令,获取查询结果中的首行首列的值,返回
46 return cmd.ExecuteScalar();
47 }
48 }
49
50 //获取结果集
51 public static DataTable GetDataTable(string sql,params SQLiteParameter[] ps)
52 {
53 using (SQLiteConnection conn=new SQLiteConnection(connStr))
54 {
55 //构造适配器对象
56 SQLiteDataAdapter adapter=new SQLiteDataAdapter(sql,conn);
57 //构造数据表,用于接收查询结果
58 DataTable dt=new DataTable();
59 //添加参数
60 adapter.SelectCommand.Parameters.AddRange(ps);
61 //执行结果
62 adapter.Fill(dt);
63 //返回结果集
64 return dt;
65 }
66 }
67 }
68 }