OK for the record, I m MUCH more familiar with Java and RnR than any .NET. I have fixed a few bugs in a function here and there and Googled a few new "features" here and there but it s not my expertise. OK cavets out of the way, here s my issue, I need to create a RSS feed for our site built in ASP.NET. Google turned up a few solutions, but I used this one as an example: http://www.aspfree.com/c/a/C-Sharp/Creating-an-RSS-Feed-with-ASP-Net-Written-in-C-Sharp/
Oddly, I get it all to work with no errors that I can see but I only get a blank page when I run it. I ve tested the SQL, it works and returns the rows I want but I don t know how to diagnose if it s connecting to the DB or not or why it s not returning anything. Here s the code:
页: 1
using System;
using System.Text;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Xml;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
//Class for returning RSS feed Data
public partial class rss : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
string sSource;
string sLog;
string sEvent;
sSource = "RSS Feed";
sLog = "Application";
sEvent = "Database Connectiont";
// Connect to the Database
SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=events;Persist Security Info=True;User ID=wa;Password=password;");
// Retrieve the SQL query results and bind it to the Repeater
const string SQL_QUERY = "SELECT EventName, Comments, URL, StartDate FROM event WHERE SaleDateTo > getdate() AND SaleDateFrom < getdate() AND redirecttourl is not null ORDER BY EventDate";
SqlCommand myCommand = new SqlCommand(SQL_QUERY, myConnection);
bool IsDbAvailable = true;
try {
myConnection.Open();
rptRSS.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
rptRSS.DataBind();
myConnection.Close();
}
catch {
IsDbAvailable = false;
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource,sLog);
}
finally {
myConnection.Close();
}
}
protected string FormatForXML(object input)
{
string data = input.ToString(); //cast input to string
// replace those characters disallowed in XML documents
data = data.Replace("&", "&");
data = data.Replace(""", """);
data = data.Replace(" ", "'");
data = data.Replace("<", "<");
data = data.Replace(">", ">");
return data;
}
}
rss.aspx:
<%@ Page language="c#" CodeFile="rss.aspx.cs" ContentType="text/xml" AutoEventWireup="false" Inherits="rss"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<asp:Repeater id="rptRSS" runat="server">
<HeaderTemplate>
<rss version="2.0">
<channel>
<title>TA On-Sale Feed</title>
<link>http://www.website.com/rss.aspx</link>
<description>All events current on-sale</description>
</HeaderTemplate>
<itemTemplate>
<event>
<title><%#FormatForXML(DataBinder.Eval(Container.DataItem,"EventName"))%>
</title>
<description>
<%#FormatForXML(DataBinder.Eval(Container.DataItem, "Comments"))%>
</description>
<link>http://order.ticketalternative.com<%#DataBinder.Eval(Container.DataItem, "url")%>
</link>
<eventdate>
<%#DataBinder.Eval(Container.DataItem, "StartDate")%>
<eventdate>
</event>
</ItemTemplate>
<FooterTemplate>
</channel>
</rss>
</FooterTemplate>
</asp:Repeater>
</html>