我正在尝试通过在我喜欢的网站上复制功能来自学 C#。
我有一个 ASP 中继器(称为 newsRepearer)来显示一些新闻项目。它工作正常,直到我取出基于 ASP 的 SQL 数据源并将其放在后面的代码中,以便我可以设置一个变量(通过文本框输入)来显示一组前几天的新闻以及实现它在 WHERE 查询中。
当我运行此代码时,我收到以下错误:
An invalid data source is being used for newsRepeater. A valid data source must implement either IListSource or IEnumerable.
protected void Page_Load(object sender, EventArgs e)
{
int newsDate = -7;
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["IGSConnectionString1"].ConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("SELECT * FROM igs_news WHERE DATE(newsDate) = DATEDIFF(day,@newsDays)", conn))
{
cmd.Parameters.AddWithValue("@newsDate", newsDate);
newsRepeater.DataSource = cmd;
newsRepeater.DataBind();
}
}
}
我看到了错误,但不理解错误或 IListSource 和 IEnumerable 到底是什么。我究竟做错了什么?
我了解 WHERE 部分可能不正确。一旦解决了这个问题,我将继续努力。