SQLite数据库操作类

SQLite数据库操作类,第1张

SQLite Helper类,基于.net c#的SQLite数据库操作类SQLite这个精巧的小数据库,无需安装软件,只需要一个System.Data.SQLite.DLL文件即可操作SQLite数据库。但是据说功能却非常强大。简介:SQLite是一个开源数据库,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中。SQLite已经是世界上布署得最广泛的SQL数据库引擎,被用在无以计数的桌面电脑应用中,还有消费电子设备中,如移动电话、掌上电脑和MP3播放器等。SQLite的源码就放在公有领域(即WikiPedia的public domain)中。开始使用:Sqliteman,windows下最好的sqlite gui客户端 sqlite,sqliteman 7.72M

SQLite Administrator 0.8.3.2┊是基于数据库引擎的管理工具┊汉化绿色特别版 sqlite 1.68M

SQLite,除了access,mysql以外的另外一个轻量级数据库

using System

using System.Collections.Generic

using System.Text

using System.Web

using System.Configuration

using System.Data

using System.Data.SQLitenamespace DAL

{

public class Sqlite

{

/// <summary>

/// 获得连接对象

/// </summary>

/// <returns></returns>

public static SQLiteConnection GetSQLiteConnection()

{

return new SQLiteConnection("Data Source=" + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["db"].ToString()))

}private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p)

{if (conn.State != ConnectionState.Open)

conn.Open()

cmd.Parameters.Clear()

cmd.Connection = conn

cmd.CommandText = cmdText cmd.CommandType = CommandType.Text

cmd.CommandTimeout = 30 if (p != null)

{

foreach (object parm in p)

cmd.Parameters.AddWithValue(string.Empty, parm)

//for (int i = 0i <p.Lengthi++)

//cmd.Parameters[i].Value = p[i]

}

}public static DataSet ExecuteDataset(string cmdText, params object[] p)

{

DataSet ds = new DataSet()

SQLiteCommand command = new SQLiteCommand()

using (SQLiteConnection connection = GetSQLiteConnection())

{

PrepareCommand(command, connection, cmdText, p)

SQLiteDataAdapter da = new SQLiteDataAdapter(command)

da.Fill(ds)

}return ds

}public static DataRow ExecuteDataRow(string cmdText, params object[] p)

{

DataSet ds = ExecuteDataset(cmdText, p)

if (ds != null &&ds.Tables.Count >0 &&ds.Tables[0].Rows.Count >0)

return ds.Tables[0].Rows[0]

return null

}/// <summary>

/// 返回受影响的行数

/// </summary>

/// <param name="cmdText">a</param>

/// <param name="commandParameters">传入的参数</param>

/// <returns></returns>

public static int ExecuteNonQuery(string cmdText, params object[] p)

{

SQLiteCommand command = new SQLiteCommand() using (SQLiteConnection connection = GetSQLiteConnection())

{

PrepareCommand(command, connection, cmdText, p)

return command.ExecuteNonQuery()

}

}/// <summary>

/// 返回SqlDataReader对象

/// </summary>

/// <param name="cmdText"></param>

/// <param name="commandParameters">传入的参数</param>

/// <returns></returns>

public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p)

{

SQLiteCommand command = new SQLiteCommand()

SQLiteConnection connection = GetSQLiteConnection()

try

{

PrepareCommand(command, connection, cmdText, p)

SQLiteDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection)

return reader

}

catch

{

connection.Close()

throw

}

}/// <summary>

/// 返回结果集中的第一行第一列,忽略其他行或列

/// </summary>

/// <param name="cmdText"></param>

/// <param name="commandParameters">传入的参数</param>

/// <returns></returns>

public static object ExecuteScalar(string cmdText, params object[] p)

{

SQLiteCommand cmd = new SQLiteCommand() using (SQLiteConnection connection = GetSQLiteConnection())

{

PrepareCommand(cmd, connection, cmdText, p)

return cmd.ExecuteScalar()

}

}/// <summary>

/// 分页

/// </summary>

/// <param name="recordCount"></param>

/// <param name="pageIndex"></param>

/// <param name="pageSize"></param>

/// <param name="cmdText"></param>

/// <param name="countText"></param>

/// <param name="p"></param>

/// <returns></returns>

public static DataSet ExecutePager(ref int recordCount, int pageIndex, int pageSize, string cmdText, string countText, params object[] p)

{

if (recordCount <0)

recordCount = int.Parse(ExecuteScalar(countText, p).ToString()) DataSet ds = new DataSet() SQLiteCommand command = new SQLiteCommand()

using (SQLiteConnection connection = GetSQLiteConnection())

{

PrepareCommand(command, connection, cmdText, p)

SQLiteDataAdapter da = new SQLiteDataAdapter(command)

da.Fill(ds, (pageIndex - 1) * pageSize, pageSize, "result")

}

return ds

}

}

}

以上是我根据SqlHelper、OledbHelper类修改而来。我已经使用过。但是不确定是否完善,因为我对SQLite接触时间还不长。欢迎大家批评指正。

1.浮点本来就不完全精确,这个结果很正常。想要完全精确的小数,就不要用浮点,用java.math.BigDecimal来计算。

2.select sum(id)/100.0 from test


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/158616.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-23
下一篇2023-03-23

发表评论

登录后才能评论

评论列表(0条)

    保存