使用 SqlConnection 和 VB.NET 创建 ASP.NET 聚合源

2024-02-11

这似乎是 Scott Mitchell 撰写的一篇很棒的文章,用于创建联合提要ASP.NET 3.5。对我来说,问题是它使用 C# 和 Linq,目前我对这两种语言不太熟悉。

http://dotnetslackers.com/articles/aspnet/How-to-create-a-synmination-feed-for-your-website.aspx http://dotnetslackers.com/articles/aspnet/How-to-create-a-syndication-feed-for-your-website.aspx

有谁知道哪里可能存在一个例子System.ServiceModel.Syndication可以使用以下方式生成像本文这样的联合提要的命名空间VB.NET and a SQL连接 object?

我环顾四周,发现每个示例似乎都是用 C# 和 Linq 生成的(这可能证明我需要尽快学习它们,而不是稍后学习它们)。


您现在可能已经明白了,但这里有一个实现的完整性和一些 VB 的热爱(以及对死灵法师徽章 https://stackoverflow.com/badges/17/necromancer. :)

aspx页面很简单,注意60秒的缓存:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="YourProject._Default" %>
<%@ OutputCache Duration="60" VaryByParam="Type" %>

您可能想考虑使用 HttpHandler 来代替,但这也可以正常工作。

背后的代码:

Imports System.ServiceModel.Syndication
Imports System.Xml

Partial Public Class _Default
  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim dbConn As String = "[your db connection]"
    Dim format As FeedFormats = GetFeedFormat()
    Dim posts As New List(Of SyndicationItem)

    Using cnn As New SqlClient.SqlConnection(dbConn)
      cnn.Open()

      Using cmd As New SqlClient.SqlCommand("SELECT ID, Title, Text, Url, Created FROM Posts", cnn)
        Dim reader As SqlClient.SqlDataReader = cmd.ExecuteReader

        While reader.Read
          Dim item As New SyndicationItem(reader.Item("Title"), reader("Text"), New Uri(reader("Url")))

          posts.Add(item)
        End While
      End Using
    End Using

    Dim feed As New SyndicationFeed("Your feed title", "Your feed description", New Uri("http://yourdomain.com"), posts)

    Using feedWriter As XmlWriter = XmlWriter.Create(Response.OutputStream)
      Select Case format
        Case FeedFormats.Atom
          Response.ContentType = "application/rss+xml"

          Dim atomFormatter As New Atom10FeedFormatter(feed)
          atomFormatter.WriteTo(feedWriter)
        Case FeedFormats.Rss
          Response.ContentType = "application/atom+xml"

          Dim rssFormatter As New Rss20FeedFormatter(feed)
          rssFormatter.WriteTo(feedWriter)
      End Select
    End Using
  End Sub

  Private Function GetFeedFormat() As FeedFormats
    If Request.QueryString("format") = "atom" Then
      Return FeedFormats.Atom
    Else
      Return FeedFormats.Rss
    End If
  End Function

  Public Enum FeedFormats
    Rss = 1
    Atom = 2
  End Enum
End Class

最后,为了超级完整,创建表的 SQL 脚本:

CREATE TABLE [dbo].[Posts](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [Title] [nvarchar](50) NOT NULL,
 [Text] [ntext] NOT NULL,
 [Url] [nvarchar](50) NOT NULL,
 [Created] [datetime2](7) NOT NULL,
 CONSTRAINT [PK_Posts] PRIMARY KEY CLUSTERED 
(
 [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [dbo].[Posts] ADD  CONSTRAINT [DF_Posts_Url]  DEFAULT ('') FOR [Url]
GO

ALTER TABLE [dbo].[Posts] ADD  CONSTRAINT [DF_Posts_Created]  DEFAULT (getdate()) FOR [Created]
GO

完毕。 VB.NET、SQL 连接、System.ServiceModel.Syndication命名空间,并且没有 LINQ。 :)

更新:2010 年 11 月 11 日获得死灵法师徽章。耶!谢谢! :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SqlConnection 和 VB.NET 创建 ASP.NET 聚合源 的相关文章

随机推荐

  • 使用 cmd.exe /c 相对于根本不使用 cmd 的优点

    如果我在 C 中运行一个进程 使用 cmd c 比直接运行进程有什么好处吗 Ex ProcessStartInfo info new ProcessStartInfo cmd exe info Arguments c application
  • 区分键盘的真实按键和虚拟按键

    我正在用 C 编写一个程序 它必须模拟键盘的按键命令 问题是 我需要模拟 真实 的键盘按钮点击 而不是假的 例如 据我了解 当用户按下键盘上的任何按钮时 信号通过 USB 发送 然后通过键盘驱动程序继续 当使用 API SendInput
  • 将 async/await 与 DataReader 一起使用? (没有中间缓冲区!)

    我的目标很简单 我想做异步 I O 调用 使用 async wait 但是 不使用 DataFlow 依赖项 就像这个答案一样 https stackoverflow com a 13148683 859154 没有中间缓冲区 不喜欢这个答
  • 在 WPF Frame 控件中关闭导航页面声音

    我在 WPF 窗口中有一个 Frame 元素 并且应用程序中的所有内容都是使用 Frame Navigate 加载的 但是 当导航到新页面时 默认会播放该声音 它与 Internet Explorer 中播放的声音相同 有什么方法可以从应用
  • Visual Studio 2015 中的默认日期时间选择器仅显示日期选择器,不允许选择时间

    我正在使用 Visual Studio 2015 并且在我的 MVC5 应用程序中使用其默认日期时间选择器 我在显示日期时间选择器时遇到问题 它仅显示日期选择器而不显示时间选择器 但我也需要时间选择器 这是我在模型中的 datetimepi
  • ValueError:使用 pandas hub_table 不允许使用负尺寸

    我正在尝试制作项目 项目协作推荐代码 我的完整数据集可以找到here https drive google com open id 0B7KsvcvcTJ4DeU1IRE93ZHVnRGM 我希望用户成为行 项目成为列 评级成为值 我的代码
  • .NET 中的串行端口通信

    我正在使用 C 从串行端口接收数据 但存在一些问题 我对此很陌生 所以我需要一些帮助 首先我想知道哪些函数是事件驱动的 ReadExisting Read Readbyte Readchar ReadLine Readto 如何从该端口的输
  • Spark 读取路径/文件名中包含空格的 csv 文件时出错

    我想使用 Spark 读取 csv 文件 文件的路径有空格 Spark 正在将空格替换为 20 这是代码 val tmpDF spark read format com databricks spark csv option multiLi
  • 在 Android 上运行标准 Java 代码

    我想在 Android 上运行我的 Java 代码 但我对活动不熟悉 如何在 Activity 上调用 WordPuzzle 安卓活动 public class Puzzle extends Activity public void onC
  • 我正在尝试创建一个可访问的
  • Spring MVC 与 hibernate Validator 来验证单个基本类型

    下面是我遇到问题的映射方法 无论我传递给它什么值 验证都会返回 通过验证 RequestMapping value test method RequestMethod POST ResponseBody public String getT
  • 网站不同部分使用不同的 SSL 证书

    我在 example com 上有一个网站 它从 s example com 亚马逊 Cloudfront 发行版 加载所有静态组件 现在我想让 example com 的一些页面使用 https 所以我想我应该为 example com
  • 了解 Kafka 主题和分区

    我开始学习卡夫卡 在阅读过程中 我想到了一些问题 当生产者生成消息时 它会指定topic它想要将消息发送到 是对的吗 它关心分区吗 当订阅者运行时 它是否指定其组ID 以便它可以成为同一主题或该组消费者感兴趣的多个主题的消费者集群的一部分
  • 使用 Jquery 将剪贴板图像复制到网页中

    我想将剪贴板图像复制到网页中 前任 用户单击打印屏幕按钮 打开网页 单击 CTRL V 图像将上传到网页 可以使用 jquery javascript 或 PHP 吗 在火狐浏览器中可以吗 提前致谢 恐怕不是 不是 您必须让用户将屏幕截图保
  • 在哪里更改oracle 11g中的NLS_DATE_FORMAT?

    我需要更改存储过程中的 NLS DATE FORMAT 似乎它是一个会话变量 我应该在哪里更改变量掩码 应该在全局声明中还是其他地方完成 我的意思是从前端 如果您想更改过程中的 NLS 参数 则可以使用DBMS SESSION SET NL
  • 元素“标题”出现次数太少,ASP.NET.MVC 母版页中出现 XHTML 验证警告

    我在 ASP NET MVC 母版页中收到以下 XHTML 验证警告 验证 XHTML 1 0 Transitional 元素 title 出现的次数太少 母版页的标题标签包含在 head 标签的 ContentPlaceHolder 中
  • NLTK数据安装问题

    我正在尝试在 Mac OSX 10 9 上安装 NLTK Data NLTK 3 0文档中提到 要设置的下载目录是 usr share nltk data 用于集中安装 但对于这条路径 我收到错误 OSError Errno 13 权限被拒
  • 运算符重载Python自定义类

    假设我想重载一个运算符 假设 现在 对于我创建的一些课程 class A object code here 进而 a A b A 我会做什么来定义 c a b 或类似的规定 注意 这个问题纯粹是理论上的 我可能会在某个时候使用它 只是目前不
  • C++:这个运算符^是什么? [复制]

    这个问题在这里已经有答案了 int main std string original Hello world std string decrypted std string encrypted char key x cout lt lt O
  • 使用 SqlConnection 和 VB.NET 创建 ASP.NET 聚合源

    这似乎是 Scott Mitchell 撰写的一篇很棒的文章 用于创建联合提要ASP NET 3 5 对我来说 问题是它使用 C 和 Linq 目前我对这两种语言不太熟悉 http dotnetslackers com articles a