-4

システムを使用して; System.Data の使用; System.Windows.Forms を使用します。System.Data.SqlClient の使用; System.Linq を使用します。

namespace ProiectBDD
{
    public partial class AdaugaIntrebari : UserControl
    {
        private string connstring;

        public string Connstring
        {
            get { return connstring; }
            set { connstring = value; }
        }

        public AdaugaIntrebari(string p_connstring)
        {
            connstring = p_connstring;
            InitializeComponent();
            IncarcaCategorii();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (enumerator.MoveNext())
            {
                label1.Text = enumerator.Current.Categorie;
            }
        }

        public void IncarcaCategorii()
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();
            var q = from a in dc.GetTable<Categorii>()
                    select a;
            var enumerator = q.AsEnumerable().GetEnumerator();
        }
    }
}

ボタン イベント ハンドラ メソッドでName enumeratordoes not exist in current context エラーが発生します。

4

3 に答える 3

1

button1_Clickenumeratorクラスフィールドにする必要がある IncarcaCategory にのみ存在するため、わかりません

using System;
using System.Data;
using System.Windows.Forms;
using System.Linq;

namespace ProiectBDD
{
    public partial class AdaugaIntrebari : UserControl
    {
        private string connstring;
        private IEnumerator<DataRow> _enumerator;

        public string Connstring
        {
            get { return connstring; }
            set { connstring = value; }
        }

        public AdaugaIntrebari(string p_connstring)
        {
            connstring = p_connstring;
            InitializeComponent();
            IncarcaCategorii();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (_enumerator == null) return;

            if (enumerator.MoveNext())
            {
                label1.Text = _enumerator.Current.Categorie;
            }
        }

        public void IncarcaCategorii()
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();
            var q = from a in dc.GetTable<Categorii>()
                    select a;
            _enumerator = q.AsEnumerable().GetEnumerator();

        }
    }
}
于 2013-01-13T11:05:38.410 に答える
0

enomerator変数がスコープに存在しません

この方法を参照してください:

public void IncarcaCategorii()
{
    DataClasses1DataContext dc = new DataClasses1DataContext();
    var q = from a in dc.GetTable<Categorii>()
            select a;
    var enumerator = q.AsEnumerable().GetEnumerator();
} // This is where "enumerator" become subject to garbage collection

enumerator変数を何らかの形でここに渡す必要があります:

private void button1_Click(object sender, EventArgs e)
{
    if (enumerator.MoveNext())
    {
        label1.Text = enumerator.Current.Categorie;
    }
}
于 2013-01-13T11:03:37.143 に答える
0
label1.Text = enumerator.Current.Categorie.[FieldName];

または、現在の位置がIEnumeratorコンテキストから外れている可能性があります。オブジェクトを再度選択してください

于 2013-01-13T11:06:26.317 に答える