148 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.IO;
							 | 
						|||
| 
								 | 
							
								using System.Data.SQLite;
							 | 
						|||
| 
								 | 
							
								using System.Data;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace DeiNiu.Data.BaseObject
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									public class SQLiteHelper
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        //创建数据库文件
							 | 
						|||
| 
								 | 
							
								        public static void CreateDBFile(string fileName)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string path = System.Environment.CurrentDirectory + @"/Data/";
							 | 
						|||
| 
								 | 
							
								            if (!Directory.Exists(path))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Directory.CreateDirectory(path);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            string databaseFileName = path + fileName;
							 | 
						|||
| 
								 | 
							
								            if (!File.Exists(databaseFileName))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                SQLiteConnection.CreateFile(databaseFileName);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								        //生成连接字符串
							 | 
						|||
| 
								 | 
							
								         private static string CreateConnectionString()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            SQLiteConnectionStringBuilder connectionString = new SQLiteConnectionStringBuilder();
							 | 
						|||
| 
								 | 
							
								            connectionString.DataSource = @"data/ScriptHelper.db";
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								            string conStr = connectionString.ToString();
							 | 
						|||
| 
								 | 
							
								            return conStr;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 对插入到数据库中的空值进行处理
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="value"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static object ToDbValue(object value)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (value == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return DBNull.Value;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return value;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 对从数据库中读取的空值进行处理
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="value"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static object FromDbValue(object value)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (value == DBNull.Value)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return null;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return value;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 执行非查询的数据库操作
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sqlString">要执行的sql语句</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="parameters">参数列表</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns>返回受影响的条数</returns>
							 | 
						|||
| 
								 | 
							
								        public static int ExecuteNonQuery(string sqlString, params SQLiteParameter[] parameters)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string connectionString=CreateConnectionString();
							 | 
						|||
| 
								 | 
							
								            using (SQLiteConnection conn = new SQLiteConnection(connectionString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                conn.Open();
							 | 
						|||
| 
								 | 
							
								                using (SQLiteCommand cmd = conn.CreateCommand())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    cmd.CommandText = sqlString;
							 | 
						|||
| 
								 | 
							
								                    foreach (SQLiteParameter parameter in parameters)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        cmd.Parameters.Add(parameter);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    return cmd.ExecuteNonQuery();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 执行查询并返回查询结果第一行第一列
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sqlString">SQL语句</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sqlparams">参数列表</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static object ExecuteScalar(string sqlString, params SQLiteParameter[] parameters)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string connectionString = CreateConnectionString();
							 | 
						|||
| 
								 | 
							
								            using (SQLiteConnection conn = new SQLiteConnection(connectionString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                conn.Open();
							 | 
						|||
| 
								 | 
							
								                using (SQLiteCommand cmd = conn.CreateCommand())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    cmd.CommandText = sqlString;
							 | 
						|||
| 
								 | 
							
								                    foreach (SQLiteParameter parameter in parameters)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        cmd.Parameters.Add(parameter);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    return cmd.ExecuteScalar();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 查询多条数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sqlString">SQL语句</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="parameters">参数列表</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns>返回查询的数据表</returns>
							 | 
						|||
| 
								 | 
							
								        public static DataTable GetDataTable(string sqlString,params SQLiteParameter[] parameters)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string connectionString = CreateConnectionString();
							 | 
						|||
| 
								 | 
							
								            using (SQLiteConnection conn = new SQLiteConnection(connectionString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                conn.Open();
							 | 
						|||
| 
								 | 
							
								                using (SQLiteCommand cmd = conn.CreateCommand())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    cmd.CommandText = sqlString;
							 | 
						|||
| 
								 | 
							
								                    foreach (SQLiteParameter parameter in parameters)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        cmd.Parameters.Add(parameter);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    DataSet ds = new DataSet();
							 | 
						|||
| 
								 | 
							
								                    SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
							 | 
						|||
| 
								 | 
							
								                    adapter.Fill(ds);
							 | 
						|||
| 
								 | 
							
								                    return ds.Tables[0];
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |