【发布时间】:2021-07-13 06:52:36
【问题描述】:
当应用程序通过终止/终止关闭时,我正在寻找一种将数据发送到我的数据库服务器的方法。到目前为止,我发现可以在Form的Application.Run()之后运行一些代码,但是,在连接打开功能之后,代码似乎停止了。下面是一个演示。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new xxxForm());
Console.WriteLine("Runs Fine.");
if (UserSession != null)
{
Console.WriteLine("Runs Fine.");
MySqlConnection Connection = new MySqlConnection("Server=xxx; database=xxx; UID=xxx; password=xxx");
Console.WriteLine("Runs Fine");
Connection.Open();
Console.WriteLine("STOPS RUNNING");
string query = "UPDATE users SET clientstatus = 'offline' WHERE uuid = '" + UserSession.UUID + "' ";
var cmd = new MySqlCommand(query, Connection);
cmd.ExecuteNonQuery();
Console.WriteLine("Doesn't Run");
UserSession = null;
}
Console.WriteLine("Doesn't Run");
}
我想知道是否有办法做到这一点,因为我似乎找不到太多关于这样做的文档。
注意:我之前在此下编写了很多代码并且它可以工作,但是由于某种原因连接没有。
【问题讨论】:
-
问:有没有办法[在 WinForm 终止时做点什么]?答:是的:只需在Application.ApplicationExit 上定义一个事件处理程序。问:您显示的代码实际上是来自“WinForm”应用程序吗?如果是这样,您的目标是哪个平台?赢32? 。网? .Net Core 3.1? .Net 5?
-
当你说杀死/终止时,你的意思是通过任务管理器吗?
-
However, code seems to stop after the connection opening function.,程序是否退出,是否抛出任何错误? -
ApplicationExit 有效,但它不适用于终止应用程序,仅适用于像
Application.Exit()这样的预定退出。是的,我的意思是任务管理器或其他“强制”应用程序关闭的方法。我知道我可以制作一个辅助应用程序,只是检查它是否死了,但这很丑陋,而不是我正在寻找的东西。程序以代码“1”退出。 -
好吧,我会说你有点走投无路了。杀死进程杀死进程死亡,这意味着没有更多的代码与该进程将要执行
标签: c# mysql database winforms