Dro*_*ror 5 c# sql-server asp.net sql-server-2008
我有一个存储过程,其中包含类似10个不同的INSERTS,是否可以将每个INSERT上受影响的行的COUNT返回到ASP.NET c#页,以便为查看该ASP.NET页的客户端显示存储过程?
在服务器端,使用严重性为 10 的函数将消息发送到客户端RAISERROR(严重性高于 10 会导致中断过程执行的异常,即将执行转移到块CATCH,如果有的话)。在下面的示例中,我没有添加错误号,因此函数将使用默认错误号 50000 RAISERROR。这是示例:
DECLARE @count INT = 0
DECLARE @infoMessage VARCHAR(1000) = ''
-- INSERT
SET @count = @@ROWCOUNT
SET @infoMessage = 'Number of rows affected ' + CAST(@count AS VARCHAR(10))
RAISERROR(@infoMessage, 10, 0) WITH NOWAIT
-- another INSERT
SET @count = @@ROWCOUNT
SET @infoMessage = 'Number of rows affected ' + CAST(@count AS VARCHAR(10))
RAISERROR(@infoMessage, 10, 0) WITH NOWAIT
Run Code Online (Sandbox Code Playgroud)
在客户端,设置适当的事件处理程序,下面是一个示例:
using (SqlConnection conn = new SqlConnection(...))
{
conn.FireInfoMessageEventOnUserErrors = true;
conn.InfoMessage += new SqlInfoMessageEventHandler(conn_InfoMessage);
using (SqlCommand comm = new SqlCommand("dbo.sp1", conn)
{ CommandType = CommandType.StoredProcedure })
{
conn.Open();
comm.ExecuteNonQuery();
}
}
static void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
// Process received message
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10626 次 |
| 最近记录: |