0

好きな Web サイトの機能を複製して C# を独学しようとしています。

いくつかのニュース項目を表示するための ASP Repeater (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 部分が間違っている可能性があることは理解しています。これが解決したら、私はそれに取り組みます。

4

2 に答える 2

0

そして、将来の参考のために、データベースから過去 7 日間のニュース項目を選択する WHERE クエリに近づいていましたが、まだ十分ではありませんでした。以下は私が望んでいたことをしました。

SELECT * FROM igs_news WHERE newsDate < DATEDIFF(day,@newsDate,GETDATE())

于 2013-06-13T03:39:24.613 に答える