互联网连接关闭一段时间后如何重试连接到数据库

我有一个用 C# 构建的通知应用程序,用于通知数据库中的任何更改。应用程序在后台运行。但问题是在应用程序启动后,如果互联网关闭,应用程序会抛出 SQLException 。我已经使用 try catch 来处理异常。但我希望我的应用程序尝试连接数据库,并在建立连接后返回主代码。


    try

            {

                using (SqlConnection connection =

       new SqlConnection(GetConnectionString()))

                {              

//i want to return here when the connection is reestablished


using (SqlCommand command =

                    new SqlCommand(GetListenerSQL(), connection))

                    {

                        connection.Open();


                        // Make sure we don't time out before the

                        // notification request times out.

                        command.CommandTimeout = NotificationTimeout;

                        SqlDataReader reader = command.ExecuteReader();

                        while (reader.Read())

                        {

                            messageText = System.Text.ASCIIEncoding.ASCII.GetString((byte[])reader.GetValue(13)).ToString();

                            // Empty queue of messages.

                            // Application logic could parse

                            // the queue data and 

                            // change its notification logic.

                        }


                        object[] args = { this, EventArgs.Empty };

                        EventHandler notify =

                        new EventHandler(OnNotificationComplete);

                        // Notify the UI thread that a notification

                        // has occurred.

                        this.BeginInvoke(notify, args);

                    }

                }

            }

            catch(SqlException e)

            {


            }

是否可以在没有 goto 语句的情况下进行。我宁愿避免 goto 语句。


慕田峪4524236
浏览 153回答 3
3回答

繁星点点滴滴

如果失败,您应该调用计时器,计时器应该调用后台工作人员。编写 Functionality 以检查后台工作人员中的连接。如果它是真的,你应该停止计时器。并调用通常的过程
打开App,查看更多内容
随时随地看视频慕课网APP