SqliteHelper

using System;
using System.Data;
using System.Data.SQLite;
using System.Windows.Forms;


	public abstract class SqliteHelper
	{
		private static readonly string connectionString = "Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "Data;Password=XXX";

		public static int ExecuteNonQuery(string cmdText, params SQLiteParameter[] cmdParms)
		{
			SQLiteConnection conn = new SQLiteConnection(connectionString);
			SQLiteCommand cmd = new SQLiteCommand();

			try
			{
				PrepareCommand(cmd, conn, cmdText, cmdParms);
				int val = cmd.ExecuteNonQuery();
				cmd.Parameters.Clear();
				conn.Close();
				return val;
			}
			catch
			{
				throw new Exception("Database Error");
			}
		}

		public static SQLiteDataReader ExecuteReader(string cmdText, params SQLiteParameter[] cmdParms)
		{
			SQLiteConnection conn = new SQLiteConnection(connectionString);
			SQLiteCommand cmd = new SQLiteCommand();

			try
			{
				PrepareCommand(cmd, conn, cmdText, cmdParms);
				SQLiteDataReader dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
				cmd.Parameters.Clear();
				return dataReader;
			}
			catch
			{
				throw new Exception("Database Error");
			}
		}

		public static SQLiteParameter AddParameter(string parameterName, object value)
		{
			return new SQLiteParameter(parameterName, value);
		}

		private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, SQLiteParameter[] cmdParms)
		{
			if (conn.State != ConnectionState.Open)
			{
				conn.Open();
			}

			cmd.Connection = conn;
			cmd.CommandType = CommandType.Text;
			cmd.CommandText = cmdText;

			if (cmdParms != null)
			{
				foreach (SQLiteParameter parm in cmdParms)
				{
					cmd.Parameters.Add(parm);
				}
			}
		}
	}

posted @ 2010-09-01 09:39  ssihc  阅读(468)  评论(0编辑  收藏  举报