我想跟踪sql server中更改的数据库状态。在我的解决方案中,我有一个由于从主服务器还原而脱机的数据库。 我希望在数据库脱机和何时在线时获取我的应用程序(C#)中的提示。 (比如sql通知事件)。 谢谢 。
答案 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();
}
如果有帮助,请告诉我,