C# 如何在WinForm终止时打开数据库连接?
我正在寻找一种在应用程序关闭时通过终止/终止将数据发送到数据库服务器的方法。到目前为止,我发现可以在表单的C# 如何在WinForm终止时打开数据库连接?,c#,mysql,database,winforms,C#,Mysql,Database,Winforms,我正在寻找一种在应用程序关闭时通过终止/终止将数据发送到数据库服务器的方法。到目前为止,我发现可以在表单的应用程序.run()之后运行一些代码,但是,代码似乎在连接打开函数之后停止。下面是一个演示 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false);
应用程序.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");
}
我想知道是否有一种方法可以做到这一点,因为我似乎找不到太多关于这样做的文档
注意:我以前在这方面写过很多代码,但是由于某些原因,连接不起作用
通过终止/终止关闭应用程序时
你不能。终止应用程序将暂停其执行并将其从内存中删除。它没有机会做更多的工作
您将不得不推断它:
- 拥有一个所有应用程序都连接到的服务器,该服务器可以检测连接丢失并使用它将用户标记为脱机
- 让您的应用程序每X秒更新一个特定于用户的字段,例如用户表中的
列。如果应用程序被终止,它将停止更新。任何在过去最后一次看到时间超过2秒的人都可能处于脱机状态lastseendatime
然而,代码似乎在连接打开功能后停止。
,程序是否退出,是否抛出任何错误?ApplicationExit可以工作,但它与终止应用程序无关,仅在计划退出时,如application.exit()
。是的,我指的是任务管理器或其他“强制”关闭应用程序的方法。我知道我可以做一个二次申请只是检查它是否死亡,但这是丑陋的,不是我要找的tbh。程序以代码“1”退出。好吧,我想说的是,你现在有点死胡同了。终止该进程将终止该进程,这意味着该进程将不再执行任何代码