1 public class SQLiteHelpers 2 { 3 /// <summary> 4 /// ConnectionString样例:Datasource=Test.db3;Pooling=true;FailIfMissing=false 5 /// </summary> 6 public static string ConnectionString { get; set; } 7 private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p) 8 { 9 if (conn.State != ConnectionState.Open) 10 conn.Open(); 11 cmd.Parameters.Clear(); 12 cmd.Connection = conn; 13 cmd.CommandText = cmdText; 14 cmd.CommandType = CommandType.Text; 15 cmd.CommandTimeout = 30; 16 if (p != null) 17 { 18 foreach (object parm in p) 19 cmd.Parameters.AddWithValue(string.Empty, parm); 20 } 21 } 22 public static DataSet ExecuteQuery(string cmdText, params object[] p) 23 { 24 using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) 25 { 26 using (SQLiteCommand command = new SQLiteCommand()) 27 { 28 DataSet ds = new DataSet(); 29 PrepareCommand(command, conn, cmdText, p); 30 SQLiteDataAdapter da = new SQLiteDataAdapter(command); 31 da.Fill(ds); 32 return ds; 33 } 34 } 35 } 36 public static int ExecuteNonQuery(string cmdText, params object[] p) 37 { 38 using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) 39 { 40 using (SQLiteCommand command = new SQLiteCommand()) 41 { 42 PrepareCommand(command, conn, cmdText, p); 43 return command.ExecuteNonQuery(); 44 } 45 } 46 } 47 public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p) 48 { 49 using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) 50 { 51 using (SQLiteCommand command = new SQLiteCommand()) 52 { 53 PrepareCommand(command, conn, cmdText, p); 54 return command.ExecuteReader(CommandBehavior.CloseConnection); 55 } 56 } 57 } 58 public static object ExecuteScalar(string cmdText, params object[] p) 59 { 60 using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) 61 { 62 using (SQLiteCommand command = new SQLiteCommand()) 63 { 64 PrepareCommand(command, conn, cmdText, p); 65 return command.ExecuteScalar(); 66 } 67 } 68 } 69 } 70 }