You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Data.SqlClient;
using Mesnac.Codd.Session;
using System.Data.SQLite;
namespace Mesnac.Equip.FictitiousPlc
{
public class DbHelperFactory
{
#region 单例模式
private static DbHelperFactory _this;
public static DbHelperFactory Instance
{
get
{
if (null == _this)
_this = new DbHelperFactory();
return _this;
}
}
private DbHelperFactory()
{
}
#endregion
private void CreatNullFile(string fileName)
{
FileInfo fi = new FileInfo(fileName);
if (fi.Exists)
{
return;
}
FileStream fs = File.Create(fileName);
fs.Close();
}
public DbHelper NewDbHelper(string fileName)
{
if (string.IsNullOrWhiteSpace(fileName))
{
string path = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
path = new System.IO.FileInfo(path).Directory.FullName;
fileName = System.IO.Path.Combine(path, "Plc.db");
}
CreatNullFile(fileName);
string constr = "Data Source=" + fileName;
DbSession dbsession = new DbSession(SQLiteFactory.Instance, constr);
return new DbHelper(dbsession);
}
public DbHelper NewDbHelper()
{
return NewDbHelper(string.Empty);
}
}
}