使用c#Service编辑数据库

时间:2017-05-21 15:52:43

标签: c#

我正在尝试使用我创建的服务编辑数据库,该服务设置为使用计时器每分钟运行一次。但我不能为我的生活让它工作,如果我运行代码更新数据库作为控制台应用程序然后它工作正常并更新数据库。如果我自己运行计时器,只是让它在每次运行时输出一个消息到文本文件,但是一旦我试图让计时器运行更新数据库的代码没有任何反应。请参阅下面的相关代码:

定时器:

protected override void OnStart(string[] args)
    {
        timer1 = new Timer();
        this.timer1.Interval = 10000;
        this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Tick);
        timer1.Enabled = true;
        Library.WriteErrorLog("Service Started");
    }

    private void timer1_Tick(object sender, ElapsedEventArgs e)
    {
        Library.UpdateDatabase();
    }

Library.UpdateDatabase()

public static void UpdateDatabase()
  {
        try
        {
            string outcome = "blah";
            string reason = "testblah";
            string company = "test";
            string MyConnection2 = "datasource=***.***.***.***;port=3306;username=*********;password=**********";
            string Query = "insert into CompanyBackups.Backups(outcome, reason, company) values('" + outcome + "','" + reason + "','" + company + "');";
            MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);
            MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);
            MySqlDataReader MyReader2;
            MyConn2.Open();
            MyReader2 = MyCommand2.ExecuteReader();
            while (MyReader2.Read())
            {
            }
            MyConn2.Close();
            WriteErrorLog("Database has been updated");
        }catch(Exception ex)
        {
            WriteErrorLog(ex.Message);
        }

      }

据我所知,代码根本没有运行......

1 个答案:

答案 0 :(得分:0)

对,所以这一切以及几个小时的我想要打电脑直到它或我开始哭泣。我现在发现它是由Inno Setup引起的问题,我没有意识到Inno没有为程序安装所需的DLL ......所以这一切都归结为我基本上都很厚。谢谢大家的帮助!!