跟踪数据库状态更改sql server

时间:2013-03-18 10:44:33

标签: c# sql-server database

我想跟踪sql server中更改的数据库状态。在我的解决方案中,我有一个由于从主服务器还原而脱机的数据库。 我希望在数据库脱机和何时在线时获取我的应用程序(C#)中的提示。 (比如sql通知事件)。 谢谢 。

1 个答案:

答案 0 :(得分:1)

一种方法是使用应用程序中的计时器检查数据库的状态

 private void timer1_tick(object sender,EventArgs e)
    {
    if(CheckDatabaseState() == "ONLINE")
       MessageBox.Show("db is online");
    else
    MessageBox.Show("db is NOT online");
    }

    Public string CheckDatabaseState()
    {
        string Constr = @"Data Source=.\SQLEXPRESS;Integrated Security=True;Initial Catalog=master;";

         string sql = string.Format("SELECT Name, state_desc FROM sys.databases where name = '{0}'", dbName);     

                SqlConnection conn;
                SqlCommand comm;
                SqlDataAdapter adapter;
                DataSet ds = new DataSet();

                conn = new SqlConnection(Constr);
                comm = new SqlCommand(sql, conn);
                adapter = new SqlDataAdapter(comm);
                adapter.Fill(ds);

                return ds.Tables[0]["state_desc"].ToString();
    }

如果有帮助,请告诉我,