VSoft/Source/VSoft_Dll/Prams/Itrycn_Db.cs

255 lines
9.7 KiB
C#
Raw Normal View History

using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using VSoft.Config;
using static ryCommonDb.DataProvider;
namespace VSoft.Prams
{
public class Itrycn_Db
{
public static string SQLConnStr_SysDb = "<app>\\SysDb\\SysConfig.dat";
public static string SQLConnStr = Soft_Info.UserDataFolder+ "\\Softs.dat|";
public static string SQLConnStr_Logs = Soft_Info.UserDataFolder + "\\logs.dat|";
public static DataProvider.DataProviderType dataType = DataProvider.DataProviderType.SQLiteDataProvider;
public static IDbInterface CreateDataProvider(DataProviderType dataProviderType)
{
switch (dataProviderType)
{
//case DataProviderType.OdbcDataProvider:
// return new OdbcDataProvider();
//case DataProviderType.OleDbDataProvider:
// return new OleDbDataProvider();
//case DataProviderType.OracleDataProvider:
// return new OracleDataProvider();
case DataProviderType.SQLiteDataProvider:
return new SQLiteDataProvider();
default:
return null;
}
}
/// <summary>
/// 写入设置
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public static int SetSetting(string _SQLConnStr, string name, string value)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(_SQLConnStr) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", name);
mySQL.AddField("sValue", value);
var result = db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where sName=@sName", mySQL);
if (result == 0)
{
result = db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
}
return result;
}
db.Free();
return -1000;
}
/// <summary>
/// 写入设置
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public static int SetSetting(string name, string value)
{
return SetSetting(SQLConnStr, name, value);
}
/// <summary>
/// 读取设置
/// </summary>
/// <param name="name"></param>
/// <param name="def_value"></param>
/// <returns></returns>
public static string GetSetting(string _SQLConnStr, string name, string def_value)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
string _value = def_value;
if (db.ConnDb(_SQLConnStr) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", name);
DataSet ds = db.ReadData("select * from Setting where sName=@sName", mySQL);
if (mydb.HaveData(ds))
{
DataRow reader = ds.Tables[0].Rows[0];
_value = reader["sValue"].ToString();
}
}
db.Free();
return _value;
}
/// <summary>
/// 读取设置
/// </summary>
/// <param name="name"></param>
/// <param name="def_value"></param>
/// <returns></returns>
public static string GetSetting(string name, string def_value)
{
return GetSetting(SQLConnStr, name, def_value);
}
public static int GetColumnCount(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select count(*) from Columns where parentId=" + ColumnId);
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
public static int GetSoftCount(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select count(*) from Softs where ColumnId=" + ColumnId);
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
/// <summary>
/// 获取指定栏目的第一个分类id
/// </summary>
/// <param name="db"></param>
/// <param name="ColumnId"></param>
/// <returns></returns>
public static int GetFirstColumnId(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select id from Columns where parentId=" + ColumnId+ " order by sortindex asc limit 1");
if (ds.Tables[0].Rows.Count == 0)
{ return -1; }
else
{
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
}
/// <summary>
/// 获取数据库版本
/// </summary>
/// <returns></returns>
public static int GetDbVer()
{
return GetSetting("dbVer", "1").ToInt();
}
/// <summary>
/// 设置数据库版本
/// </summary>
/// <returns></returns>
public static int SetDbVer(int DbVer)
{
return SetSetting("dbVer", DbVer.ToString());
}
public static void CreateTable(DataProvider.DataProviderType dataType, string ConnStr)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Softs");
mySQL.AddField("Name", "");
mySQL.AddField("CmdId", "");
mySQL.AddField("SoftType", 0);//0表示运行文件,1表示执行快速命令,2表示执行脚本
mySQL.AddField("Path", "");
mySQL.AddField("RunPram", "");
mySQL.AddField("StartPath", "");//起始路径
mySQL.AddField("IconPath","");//图标路径
mySQL.AddField("ClickCount",0);//点击量
mySQL.AddField("SetJson", "");//设置
mySQL.AddField("Des", "");//备注
mySQL.AddField("Hotkey", "");//快捷键
mySQL.AddField("PinYin", "");//拼音
mySQL.AddField("ColumnId", 0);//栏目ID
mySQL.AddField("sortindex", 0);
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "Columns";
mySQL.AddField("Name", "");
mySQL.AddField("sortindex", 0);
mySQL.AddField("depth", 0);//深度,0表示栏目,1表示分类
mySQL.AddField("parentId", 0);
mySQL.AddField("Hotkey", "");//快捷键
mySQL.AddField("Des", "");//备注
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
#region
mySQL.Clear();
mySQL.TableName = "Setting";
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
public static void CreateSysTable(DataProvider.DataProviderType dataType, string ConnStr)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{
//
#region
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
public static void CreateTable_Logs(DataProvider.DataProviderType dataType)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(SQLConnStr_Logs) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Logs");
mySQL.AddField("LogId", "");
mySQL.AddField("LogStr", "");
mySQL.AddField("TaskId", 1);
mySQL.AddField("TaskGUID", "");
mySQL.AddField("LogResult", "");
mySQL.AddField("CreateId", 1);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
#region
mySQL.Clear();
mySQL.TableName = "Setting";
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
/// <summary>
/// 创建数据库
/// </summary>
public static void CreateTable()
{
CreateTable(dataType, SQLConnStr_SysDb);
CreateTable(dataType, SQLConnStr);
CreateTable_Logs(dataType);
//CreateSysTable(dataType, SQLConnStr_SysDb);
}
}
}