私はクラス ライブラリを持っています。Ms. Access でレコードを選択し、選択したレコードを取得して SQL Server に挿入します。
public class SyncDatabase
{
private static SyncDatabase objs = null;
public static SyncDatabase GetInstance
{
get
{
if (objs == null)
objs = new SyncDatabase();
return objs;
}
}
OleDbConnection con = new OleDbConnection("Provider=Microsoft.jet.oledb.4.0; data source=C:/Users/cheata/Desktop/TimeSheet.mdb");
public void GetData()
{
con.Open();
OleDbCommand cmd = new OleDbCommand("select * from tblEmployee_TimeSheet", con);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
var _data = dt.AsEnumerable().Select(row => new tblEmployee_TimeSheet
{
ID = row.Field<int>(0),
EID = row.Field<int>(1),
CheckIn = row.Field<DateTime>(2),
CheckOut = row.Field<DateTime>(3),
DateCheck = row.Field<DateTime>(4)
}).ToList();
con.Close();
var context = TimeSheetDataContext.GetInstance;
foreach (tblEmployee_TimeSheet obj in _data)
{
context.Insert<tblEmployee_TimeSheet>(obj);
}
}
}
スレッドで記述したウィンドウ サービスが 1 つあります。ウィンドウが起動すると、MyWindowService も起動します。そして、スレッドを呼び出しますOnStart
。
SyncDatabase
スレッドでクラス ライブラリを呼び出し、挿入する値が SQL Server のレコードに既に存在するかどうかをメソッドでOnStart
確認します。OnStart
これは私のスレッドです:
public partial class Thread : ServiceBase
{
public Thread()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
}
protected override void OnStop()
{
}
}
誰でもその方法を教えてください。
ありがとうございます。