C# 通过nPgSQL接收NOTIFY有效负载

C# 通过nPgSQL接收NOTIFY有效负载,c#,.net,database,npgsql,C#,.net,Database,Npgsql,目前,我正在使用NPGSQL连接器将PostgreSQL数据库与我的应用程序连接起来,该应用程序是用VB.Net编写的 我尝试使用PostgreSQL的LISTEN和NOTIFY功能将特定表的表更改通知到前端。我从那次尝试中得到了积极的结果。我成功地从后端到前端得到了通知。为了实现这一目标,我尝试了以下方法: Public Sub test() Dim conn = New NpgsqlConnection("Server=servername;port=portNo; _

目前,我正在使用
NPGSQL
连接器将PostgreSQL数据库与我的应用程序连接起来,该应用程序是用
VB.Net
编写的

我尝试使用PostgreSQL的
LISTEN
NOTIFY
功能将特定表的表更改通知到前端。我从那次尝试中得到了积极的结果。我成功地从后端到前端得到了通知。为了实现这一目标,我尝试了以下方法:

Public Sub test()

Dim conn = New NpgsqlConnection("Server=servername;port=portNo; _
           User Id=UID;pwd=PWD;DataBase=DB;")
conn.Open()

Dim command = New NpgsqlCommand("listen notifytest;", conn)
command.ExecuteNonQuery()


AddHandler conn.Notification, AddressOf NotificationSupportHelper

command = New NpgsqlCommand("notify notifytest;", conn)
command.ExecuteNonQuery()

End Sub

Private Sub NotificationSupportHelper(ByVal sender As Object, _
                                      ByVal e As NpgsqlNotificationEventArgs)

'Notified here.

End Sub
这很好,但是PostgreSQL为notify提供了一个全新的功能,其中notify可以有一个负载,比如
notify测试,“Hello world”
(其中Hello world是负载,换句话说,是附加信息)

我想在通知事件处理程序
NotificationSupportHelper
中获取附加信息。因此,为了获得这些信息,我尝试访问
NpgsqlNotificationEventArgs
的成员。但我在那次尝试中失败了,因为它只包含PID和Condition作为其成员。所以我决定看一看,从那里,我得到了,在NPGSQL版本1.0中没有办法获得额外的信息。但他们为第二版(NPGSQL2.0)中调用的
NpgsqlNotificationEventArgs
提供了一个额外的成员。但它目前也在建设中。此属性将返回String.Empty always(从中)


所以我希望你们理解我想要实现的目标,我只需要在前端收到
通知时收到
有效负载。有人知道如何达到我的要求吗?是否有任何可用的
连接器
而不是
NPGSQL
来有效处理前端的
通知事件
,这意味着在前端获得
有效负载。

以防其他人有此问题。
附加信息
属性现在可用

Private Sub NotificationSupportHelper(ByVal sender As Object,
                                  ByVal e As NpgsqlNotificationEventArgs)
    MsgBox(e.Condition & " " & e.AdditionalInformation)
End Sub

我想您已经回答了您的问题:根据您的描述,nPgSQL似乎还不支持notify负载。对于大多数应用程序来说,这是一项方便的功能,您只需将数据插入
未标记的
表中,然后让您的程序
在程序收到
通知
时从未标记的表中选择
数据。您是否介意添加有关此功能的请求?您可以在我们的跟踪器中完成:提前谢谢@方济各会当然,我会的。@RajaprabhuAravindasamy,你能帮我一下吗,代码出了什么问题