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 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配