wxy新人小白
2019-07-03 22:05
采纳率: 72.9%
浏览 933

C#连接SQLite数据库一定要有SQLiteHelper的类吗

public class SQLiteHelper
{

   public const string sConn = "Data Source=" + @"path";

   /// <summary>
   /// 查询,返回object ,得到查询结果的首行首列的值,若没有首行首列返回NUll
   /// </summary>
   /// <param name="sql">查询语句</param>
   /// <param name="parameters">可选参数</param>
   /// <returns></returns>
   public static object ExecuteScalar(string sql, params SQLiteParameter[] parameters)
   {
       return ExecuteScalar(sql, CommandType.Text, parameters);

   }

   /// <summary>
   /// 查询,返回object  ,执行SQl语句,得到查询结果的首行首列,若没有首行首列返回null 
   /// </summary>
   /// <param name="sql">查询语句</param>
   /// <param name="type">如何解释命令字符串</param>
   /// <param name="parameters">可选的参数</param>
   /// <returns></returns>
   public static object ExecuteScalar(string sql, CommandType type, params SQLiteParameter[] parameters)
   {
       using (SQLiteConnection conn = new SQLiteConnection(sConn))
       {
           conn.Open();
           SQLiteCommand cmd = new SQLiteCommand(sql, conn);

           cmd.CommandType = type;
           cmd.Parameters.AddRange(parameters);
           object obj = cmd.ExecuteScalar();
           cmd.Parameters.Clear();
           return obj;
       }
   }

 /// <summary>
 /// 执行增、删、改
 /// </summary>
 /// <param name="sql">sql语句</param>
 /// <param name="parameters">可选参数</param>
 /// <returns>返回int 得到受影响的行数</returns>
   public static int ExecuteNonQuery(string sql, params SQLiteParameter[] parameters)
   {
       return ExecuteNonQuery(sql, CommandType.Text, parameters);
   }
   /// <summary>
   /// 执行增、删、改
   /// </summary>
   /// <param name="sql">sql语句</param>
   /// <param name="type">如何解释命令字符串</param>
   /// <param name="parameters">可选参数</param>
   /// <returns></returns>
   public static int ExecuteNonQuery(string sql, CommandType type, params SQLiteParameter[] parameters)
   {
       using (SQLiteConnection conn = new SQLiteConnection(sConn))
       {
           conn.Open();
           SQLiteCommand cmd = new SQLiteCommand(sql, conn);
           cmd.CommandType = type;
           cmd.Parameters.AddRange(parameters);
           int num = cmd.ExecuteNonQuery();
           cmd.Parameters.Clear();
           return num;
       }
   }


   /// <summary>
   /// 断开式查询,查询多个列
   /// </summary>
   /// <param name="sql">sql语句</param>
   /// <param name="parameters">可选参数</param>
   /// <returns>返回DataTable类型</returns>
   public static DataTable ExecuteTable(string sql, params SQLiteParameter[] parameters)
   {
       return ExecuteTable(sql, CommandType.Text, parameters);
   }

   /// <summary>
   /// 断开式查询,查询结果可为多个列
   /// </summary>
   /// <param name="sql">sql语句</param>
   /// <param name="type">如何解释命令字符串</param>
   /// <param name="parameters">可选参数</param>
   /// <returns></returns>
   public static DataTable ExecuteTable(string sql, CommandType type, params SQLiteParameter[] parameters)
   {
       SQLiteConnection conn = new SQLiteConnection(sConn);
       conn.Open();
       SQLiteCommand cmd = new SQLiteCommand(sql, conn);
       cmd.CommandType = type;
       cmd.Parameters.AddRange(parameters);
       SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
       DataSet ds = new DataSet();
       sda.Fill(ds);
       conn.Close();
       DataTable dt = ds.Tables[0];
       return dt;
   }

}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2019-07-04 09:44
    已采纳

    这个类也是源代码文件,你把它的代码直接拷贝粘贴到你的程序里,也能运行。
    问题是,这些反复调用的代码,放在一个单独的文件里,不是更好么。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • scljb 2019-07-04 08:54

    不用吧,你可以搜索一下

    评论
    解决 无用
    打赏 举报
  • 三岁儿 2020-10-20 13:02

    请问这个是还算是完整的数据库吗

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题