wxy新人小白 2019-07-03 22:05 采纳率: 31.3%
浏览 1027
已采纳

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
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档