1
  public class InnovationSubmission
    {
        public OleDbConnection connectr = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DatabaseTEST.accdr;Jet OLEDB:Database Password=DWPOIT");
        public OleDbDataAdapter Adaptor = new OleDbDataAdapter();



        private List<SelectListItem> _Area = new List<SelectListItem>();
        private List<SelectListItem> _Team = new List<SelectListItem>();


        public int ID { get; set; }
        [Required(ErrorMessage="Please enter a short description")]
        public string ShortDescription { get; set; }
        [Required(ErrorMessage = "Please enter a detailed description")]
        public string DetailedDescription { get; set; }
        public string Status { get; set; }

        [Required(ErrorMessage = "Please enter your name")]
        public string Originator { get; set; }

        [Required(ErrorMessage = "Please enter your email address")]
        [RegularExpression(".+\\@.+\\..+",
        ErrorMessage = "Please enter a valid email address")]
        public string OriginatorEmail { get; set; }
        [Required]
        public string SelectedArea { get; set; }
        [Required]
        public string SelectedTeam { get; set; }


        public List<SelectListItem> Area
        {
            get { return _Area; }
        }

        public List<SelectListItem> Teams
        {
            get 
            {

                string SQLSelect = ("SELECT * FROM Teams");
                OleDbCommand sCommand = new OleDbCommand(SQLSelect, connectr);
                Adaptor.SelectCommand = sCommand;


                connectr.Open();
                Adaptor.Fill(areaTable);
                connectr.Dispose();

                foreach (DataRow row in areaTable.Rows)
                {
                    _Team.Add(new SelectListItem() { Text = row[1].ToString(), Value = row[1].ToString() });

                }

                return _Team;
            }
        }

        public DataTable areaTable = new DataTable();


        }
}
4

2 に答える 2

1

私には、コネクタ オブジェクトに問題があるようです。おそらく他の場所で使用されているため、例外が発生します。新しい接続を開き、クエリを実行して閉じます。usingusing ブロック内でそれを達成し、クエリを実行してみてください。

また、コメントで既に述べたように、プロパティ ゲッターで db クエリを実行することはあまりお勧めできません。奇妙でハッキーに見えます...

于 2012-07-03T14:52:41.220 に答える
-1

このまま使えば大丈夫!

 public List<SelectListItem> Teams
        {
            get 
            {

                string SQLSelect = ("SELECT * FROM Teams");
                OleDbCommand sCommand = new OleDbCommand(SQLSelect, connector);
                Adaptor.SelectCommand = sCommand;


                connector.Open();
                Adaptor.Fill(areaTable);
                connector.Dispose();

                foreach (DataRow row in areaTable.Rows)
                {
                    _Team.Add(new SelectListItem() { Text = row[1].ToString(), Value = row[1].ToString() });

                }

                return _Team;
            }
        }
于 2012-07-03T14:53:39.740 に答える