在 Visual Basic 应用中显示 SQL 消息



嘿,所以我有这个触发器:

CREATE TRIGGER [dbo].[atbl_Sales_OrdersLines_ITrigGG]
ON [dbo].[atbl_Sales_OrdersLines]
FOR INSERT
AS 
BEGIN
IF (exists (select 1 from (
select x.ProductId, totalOrdersQty, ISNULL(asp.Quantity, 0) PossibleQty from (
select i.ProductId, sum(aso.Amount) totalOrdersQty 
from (select distinct ProductId from inserted) i
join atbl_Sales_OrdersLines aso on aso.ProductId = i.ProductId
group by i.ProductId) x
left join atbl_Sales_ProductS asp on asp.ProductId = x.ProductId
) x
where PossibleQty < totalOrdersQty)) 
		BEGIN
RAISERROR ('Quantity is not sufficient' ,10,1)
ROLLBACK TRANSACTION
END
END

触发器有效。当我尝试插入时 - 它会在 SQL 服务器管理器中显示错误消息。但是,在Visual Basic应用程序中,我也会收到错误,但是该消息未显示在弹出窗口中。

另一件事,关于如何在该消息中显示产品名称的任何想法(缺少数量(。

谢谢。

您需要在 Visual Basic 中捕获 SQL 错误内部异常,并将其显示在弹出窗口中。

若要显示产品的名称,可以使用SELECT 1 FROM (...查询中的子查询,并将 ProductName 添加到选择列表以填充变量,然后在 RAISERROR 字符串中使用该变量。 但是,如果有多个产品缺少数量,则需要决定要做什么。

尝试将插入的执行封装在 APP 中try...catch结构中,您将能够显示消息

最新更新