-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メソッドがありませんExecuteReaderSqlCommandします。あなたは電話する必要があります:

SqlDataReader reader = SelectBlogIndlæg.ExecuteReader();

ビルドしたとき、コンパイラのエラーメッセージは、これを自分で診断するために必要なすべての情報(少なくとも最初の部分)を提供しているはずであることに注意してください。これを自分で修正する方法(したがって、次の問題を修正する方法)を理解するために、一歩下がる価値があります。

傍白として:

  • usingすべてのリソース(接続、コマンド、リーダー)にステートメントを使用する必要がありますリストアイテム
  • ループ内で文字列を連結することは一般的に悪い考えです(この場合、セパレーターがあるようには見えないので、値はすべて一緒に塗りつぶされます)
  • 従来、変数はPascalCaseではなくcamelCaseを使用していました

また、あなたは次のように述べました:

別のプロジェクトでは、これは魅力のように機能します。

それは単に真実ではありません。指定したコードは、どのプロジェクトでも機能しません。

于 2013-01-22T10:52:31.453 に答える
0

SqlConnection オブジェクトで ExecuteReader を呼び出しています。代わりに Command オブジェクトで呼び出す必要があります。

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