using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace CNAS_DBSync
{
public class InstrumentDataFact
{
public static InstrumentData CreateInstrumentDataSource(DataSourceType dataSourceType,params object[] vs)
{
InstrumentData instrumentData;
switch (dataSourceType)
{
case DataSourceType.Access:
instrumentData = new AccessInstrumentData(vs);
break;
case DataSourceType.SQL:
instrumentData = new SQLInstrumentData(vs);
break;
case DataSourceType.SQLLite:
instrumentData = new SQLiteInstrumentData(vs);
break;
case DataSourceType.Excel:
default:
instrumentData = new ExcelInstrumentData(vs);
break;
}
return instrumentData;
}
}
public abstract class InstrumentData
{
///
/// 获取数据源数据
///
public abstract Dictionary GetInstrumentData();
}
public class ExcelInstrumentData:InstrumentData
{
public string StrLocalPath { get; set; }
public ExcelInstrumentData(params object[] vs)
{
this.StrLocalPath = vs[0].ToString();
}
public override Dictionary GetInstrumentData()
{
return ExcelHelper.ReadExcelTableNameToTable(StrLocalPath);
}
}
public class AccessInstrumentData : InstrumentData
{
public string StrLocalPath { get; set; }
public string StrUser { get; set; }
public string StrPwd { get; set; }
public AccessInstrumentData(params object[] vs)
{
this.StrLocalPath = vs[0].ToString();
if(vs[1]!=null) this.StrUser = vs[1].ToString();
this.StrPwd = vs[2].ToString();
}
public override Dictionary GetInstrumentData()
{
return MdbHelper.ReadAccessTables(StrLocalPath,StrUser,StrPwd);
}
}
public class SQLInstrumentData : InstrumentData
{
public string StrHost { get; set; }
public string StrName { get; set; }
public string StrUser { get; set; }
public string StrPwd { get; set; }
public SQLInstrumentData(params object[] vs)
{
this.StrHost = vs[0].ToString();
this.StrName = vs[1].ToString();
this.StrUser = vs[2].ToString();
this.StrPwd = vs[3].ToString();
}
public override Dictionary GetInstrumentData()
{
throw new NotImplementedException();
}
private string CreateConnectionString()
{
return string.Format("");
}
}
public class SQLiteInstrumentData : InstrumentData
{
public string StrLocalPath { get; set; }
public string StrUser { get; set; }
public string StrPwd { get; set; }
public SQLiteInstrumentData(params object[] vs)
{
this.StrLocalPath = vs[0].ToString();
if (vs[1] != null) this.StrUser = vs[1].ToString();
this.StrPwd = vs[2].ToString();
}
public override Dictionary GetInstrumentData()
{
SQLiteHelper.SetConnectionString(StrLocalPath, StrPwd);
return SQLiteHelper.ReadSQLiteTables();
}
}
}