none
照MSDN例子使用SqlNotificationRequest进行查询通知出错。。 RRS feed

  • 问题

  • 如果运行下面的代码,就会出现一个错误:通知选项标识符中,选项与选项之间必须用分号(;)分隔。但发现某选项后面是字符串 '='。
                if (Register)
                {
                    // Create and bind the SqlNotificationRequest object
                    // to the command object.
                    SqlNotificationRequest request =
                        new SqlNotificationRequest();
                    request.UserData = new Guid().ToString();
                    request.Options = String.Format(
                        "Service={0};local database={1}",
                        ServiceName, DatabaseName);
    
                    // If a time-out occurs, a notification
                    // will indicating that is the 
                    // reason for the notification.
                    request.Timeout = NotificationTimeout;
                    command.Notification = request;
                }
    2010年3月1日 0:56

答案

  • 这个问题其实很好解决,问题就在于下面的代码,MSDN 有些示例在细节上存在问题,不过一般跟踪一下不难发现问题所在。

    String.Format(
                        "Service={0};local database={1}",
                        ServiceName, DatabaseName);
    


    知识改变命运,奋斗成就人生!
    • 已标记为答案 小重山 2010年3月1日 1:58
    2010年3月1日 1:44
    版主

全部回复

  • 你好!

    这是因为你的 ServiceName 或 DatabaseName 可能是 null 为空。

    知识改变命运,奋斗成就人生!
    2010年3月1日 1:23
    版主
  • 问题找到了,        protected const string ServiceName = "Service=ContactChangeNotifications";改成protected const string ServiceName="ContactChangeNotifications";就可以运行了,但是并没有达到MSDN上介绍的那种效果。。。
    2010年3月1日 1:36
  • 这个问题其实很好解决,问题就在于下面的代码,MSDN 有些示例在细节上存在问题,不过一般跟踪一下不难发现问题所在。

    String.Format(
                        "Service={0};local database={1}",
                        ServiceName, DatabaseName);
    


    知识改变命运,奋斗成就人生!
    • 已标记为答案 小重山 2010年3月1日 1:58
    2010年3月1日 1:44
    版主