在这里需要你的想法:
要求是......
我有这段代码:
protected void Backup_click(object sender, EventArgs e)
{
var sqlQuery = "EXEC [Test].[dbo].[Usp_Test_Backup_Database] @BackupLabel = 'DB_TEST_1_18_PostScript'";
using (var connection = new SqlConnection(ConnectionString))
{
await connection.OpenAsync();
using (var tran = connection.BeginTransaction())
{
using (var command = new SqlCommand(sqlQuery, connection, tran))
{
try
{
await command.ExecuteNonQueryAsync();
}
catch (Exception)
{
tran.Rollback();
throw;
}
tran.Commit();
}
}
}
}
这需要备份。通常我SSMS到我的服务器,并执行备份进度脚本,其中包含字段 - PERCENTAGE(10,20,34,70等)
以多种想法运行
在我的界面上创建一个新按钮并执行进度脚本,读取百分比值并更新某个标签中的值?
或者还包含一个CMD语句来执行备份脚本以及备份代码?
有什么建议吗?
TIA,
答案 0 :(得分:0)
您可以使用PRINT
或RAISERROR
将消息从SQL Server发送到Applicatio。如果你需要确保要发送消息,你应该使用RAISEERROR和NOWAIT:
RAISERROR (N'working', 10,1) WITH NOWAIT
格式如docs:
中所述,如下所示RAISERROR (N'This is message %s %d.', -- Message text.
10, -- Severity,
1, -- State,
N'number', -- First argument.
5); -- Second argument.
-- The message text returned is: This is message number 5.
然后,您可以使用InfoMessage
的{{1}}事件订阅消息事件。
SqlConnection
请注意,SQL Server会自行发送信息消息,您也可以定义your own messages。当一个类型为错误的消息时,客户端连接迟早会被关闭,所以你需要小心一点,为你自己的消息选择什么类型的消息。