-1

我找不到这种奇怪行为的正确解决方案。在另一个项目中,这就像一个魅力。当我解析 sqlconnection 并使用 System.Data.SqlClient 时,它会在 executereader 下显示这条红色下划线......为什么会这样?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using System.Data.SqlClient;


public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        //*********************************
        //Definerer connection stringen   *
        //*********************************
        SqlConnection BilleddataBasen = new SqlConnection(WebConfigurationManager.ConnectionStrings["Boligforeningen_AB8"].ConnectionString);

        //**************************************
        //Definerer de forskellige variabler   *
        //**************************************
        string ImageFilePath = "";
        string ImageName = "";
        string OverfoereDataTilImageControlPaaAspxSiden = "";

        //**************************************************
        //Definerer hvordan der skal læses fra databasen   *
        //**************************************************
        SqlCommand SelectBlogIndlæg = new SqlCommand("SELECT FileName, FilePath, OprettelsesDato, Tittel, BilledetsIndhold FROM BillederTilGalleri", BilleddataBasen);

        BilleddataBasen.Open();
        SqlDataReader reader = BilleddataBasen.ExecuteReader();
        while (reader.Read())
        {
            ImageName += reader["FileName"];
            ImageFilePath += reader["FilePath"];
            lbl_OprettelsesDato.Text += reader["OprettelsesDato"];
            lbl_BilledNavnet.Text += reader["Tittel"];
            lbl_BeskrivelseAfBilledet.Text += reader["BilledetsIndhold"];
        }

        OverfoereDataTilImageControlPaaAspxSiden = ImageFilePath + ImageName;
        lbl_BilledFraDataBasen.ImageUrl = OverfoereDataTilImageControlPaaAspxSiden;

        //************************************************
        //Følgende to linier bestemmer pixel størrelse   *
        //************************************************

        lbl_BilledFraDataBasen.Width = 300;
        lbl_BilledFraDataBasen.Height = 250;

        //*************************************
        //Lukker ned for database tilgangen   *
        //*************************************
        reader.Close();
        BilleddataBasen.Close();
    }
}
4

2 回答 2

3

SqlConnection没有ExecuteReader方法。SqlCommand做。你应该打电话给:

SqlDataReader reader = SelectBlogIndlæg.ExecuteReader();

请注意,当您构建时,编译器错误消息应该已经为您提供了您自己诊断所需的所有信息 - 至少是第一部分。值得退后一步来弄清楚如何为自己解决这个问题(以及如何解决下一个问题)。

顺便说一句:

  • 您应该using对所有资源(连接、命令、阅读器)使用语句列表项
  • 在循环中连接字符串通常是一个坏主意(在这种情况下,它看起来不像你有分隔符,所以你的值都会被涂抹在一起)
  • 通常变量使用 camelCase 而不是 PascalCase

另外,你说:

在另一个项目中,这就像一个魅力。

这根本不是真的。您提供的代码不适用于任何项目。

于 2013-01-22T10:52:31.453 回答
0

你在你的 SqlConnection 对象上调用 ExecuteReader,你应该在你的 Command 对象上调用它。

SqlDataReader reader = SelectBlogIndlæg.ExecuteReader();
于 2013-01-22T10:52:56.720 回答