Sqlite 操作类代码(sqli-labs在线靶场)越早知道越好

随心笔谈9个月前发布 admin
204 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了**SQLiteHelper**类,该类提供了对SQLite数据库执行各种操作的静态方法。其核心功能包括: 1. **创建连接字符串**:通过`ConString`方法生成连接到SQLite数据库的字符串,路径默认为当前代码文件的父目录下的`sqliteTest.db`文件。 2. **执行SQL命令**:提供了多种`ExecuteNonQuery`方法,支持不带参数、带有参数的SQL语句执行,返回受影响的行数。 3. **执行查询操作**:`ExecuteScalar`方法用于执行查询并返回结果集的第一行第一列值。 4. **处理结果集**:`ExecuteReader`方法返回结果集的`DataReader`,支持传入参数并控制连接关闭。 5. **事务管理**:通过`SQLiteTransaction`管理数据库事务,确保数据一致性。 文章重点突出了该类的静态方法结构和其在数据库操作中的实用功能。

namespace System.Data.SQLite

{

using System.Data;

using System.Data.SQLite;

using System.IO;

public class SqliteHelper

{

private static string pwd=”PWD”;

private static string path=Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + “\\sqliteTest.db”;

private static string connString=string.Format(“Data Source=”{0}””, path, pwd);

///

/// 返回数据库链接字符串

///

public static string ConnString

{

get { return connString; }

}

///

/// 执行SQL语句,返回受影响的行数

///

/// 需要被执行的SQL语句

/// 受影响的行数

public static int ExecuteNonQuery(string cmdText)

{

return ExecuteNonQuery(ConnString, cmdText);

}

///

/// 执行带有事务的SQL语句

///

/// 事务

/// SQL语句

/// 受影响的行数

public static int ExecuteNonQuery(SQLiteTransaction trans, string cmdText, params SQLiteParameter[] parameters)

{

int val=0;

using (SQLiteCommand cmd=new SQLiteCommand())

{

PrepareCommand(cmd, (SQLiteConnection)trans.Connection, trans, cmdText, parameters);

val=cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

}

return val;

}

///

/// 执行SQL语句,返回受影响的行数

///

/// 连接字符串

/// SQL语句

/// SQL的参数

/// 受影响的行数

public static int ExecuteNonQuery(string connString, string cmdText, params SQLiteParameter[] parameters)

{

using (SQLiteConnection conn=new SQLiteConnection(connString))

{

return ExecuteNonQuery(conn, cmdText, parameters);

}

}

///

/// 执行SQL语句,返回受影响的行数

///

/// 数据库链接

/// SQL语句

/// 参数

/// 受影响的行数

public static int ExecuteNonQuery(SQLiteConnection connection, string cmdText, params SQLiteParameter[] parameters)

{

int val=0;

using (SQLiteCommand cmd=new SQLiteCommand())

{

PrepareCommand(cmd, connection, null, cmdText, parameters);

val=cmd.ExecuteNonQuery();

cmd.Parameters.Clear();

}

return val;

}

///

/// 执行查询,并返回结果集的第一行的第一列.其他所有的行和列被忽略.

///

/// SQL 语句

/// 第一行的第一列的值

public static object ExecuteScalar(string cmdText)

{

return ExecuteScalar(ConnString, cmdText);

}

///

/// 执行查询,并返回结果集的第一行的第一列.其他所有的行和列被忽略.

///

/// 连接字符串

/// SQL 语句

/// 第一行的第一列的值

public static object ExecuteScalar(string connString, string cmdText)

{

using (SQLiteConnection conn=new SQLiteConnection(connString))

{

return ExecuteScalar(conn, cmdText);

}

}

///

/// 执行查询,并返回结果集的第一行的第一列.其他所有的行和列被忽略.

///

/// 数据库链接

/// SQL 语句

/// 第一行的第一列的值

public static object ExecuteScalar(SQLiteConnection connection, string cmdText)

{

object val;

using (SQLiteCommand cmd=new SQLiteCommand())

{

PrepareCommand(cmd, connection, null, cmdText);

val=cmd.ExecuteScalar();

}

return val;

}

///

/// 执行SQL语句,返回结果集的DataReader

///

/// SQL语句

/// 参数

/// 结果集的DataReader

public static SQLiteDataReader ExecuteReader(string cmdText, params SQLiteParameter[] parameters)

{

return ExecuteReader(ConnString, cmdText, parameters);

}

///

/// 执行SQL语句,返回结果集的DataReader

///

/// 连接字符串

/// SQL语句

/// 参数

/// 结果集的DataReader

public static SQLiteDataReader ExecuteReader(string connString, string cmdText, params SQLiteParameter[] parameters)

{

SQLiteConnection conn=new SQLiteConnection(connString);

SQLiteCommand cmd=new SQLiteCommand();

try

{

PrepareCommand(cmd, conn, null, cmdText, parameters);

SQLiteDataReader rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);

cmd.Parameters.Clear();

return rdr;

}

catch

{

conn.Close();

throw;

}

}

///

/// 预处理Command对象,数据库链接,事务,需要执行的对象,参数等的初始化

///

/// Command对象

/// Connection对象

/// Transcation对象

/// SQL Text

/// 参数实例

private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, SQLiteTransaction trans, string cmdText, params SQLiteParameter[] parameters)

{

if (conn.State !=ConnectionState.Open)

conn.Open();

cmd.Connection=conn;

cmd.CommandText=cmdText;

if (trans !=null)

cmd.Transaction=trans;

if (null !=parameters && parameters.Length > 0)

{

cmd.Parameters.AddRange(parameters);

}

}

}

}

© 版权声明

相关文章