Необработанное исключение типа "System.ArgumentOutOfRangeException" произошло в mscorlib.dll - C#

Узнай цену своей работы

Формулировка задачи:

обработчик формы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NHibernate;
using lab4.dao;
using lab4.domain;
using lab4.mapping;
 
namespace lab4
{
    public partial class Form5 : Form
    {
         private ISession session;
        private Form1 perent;
        private string key1;
        private string key2;
        private string key3;
 
        public void setSession(ISession session)
        {
            this.session = session;
        }
 
        public void setPerent(Form1 perent)
        {
            this.perent = perent;
        }
 
        public void setKey1(string key1)
        {
            this.key1 = key1;
        }
 
        public void setKey2(string key2)
        {
            this.key2 = key2;
        }
 
        public void setKey3(string key3)
        {
            this.key3 = key3;
        }
 
        public void setTextBox1Text(string text)
        {
            this.textBox1.Text = text;
        }
 
        public void setTextBox2Text(string text)
        {
            this.textBox2.Text = text;
        }
 
        public void setTextBox3Text(string text)
        {
            this.textBox3.Text = text;
        }

        public void setButton1Visible(bool visible)
        {
            this.button1.Visible = visible;
        }
 
        public void setButton2Visible(bool visible)
        {
            this.button2.Visible = visible;
        } 
        public Form5()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DAOFactory dao1 = new NHibernateDAOFactory(session);
            IWorkerDAO workerDAO = dao1.getWorkerDAO();
           Worker worker = workerDAO.getWorkerByworkerName(key1);

            Zadachi zadachi = new Zadachi();
            zadachi.zadachi_name = textBox1.Text;
            zadachi.zadachi_prioritet = textBox2.Text;
            zadachi.zadachi_deadline = textBox3.Text;
            worker.ZadachiList.Add(zadachi);
             
            zadachi.worker = worker;
            workerDAO.SaveOrUpdate(worker);
            perent.fillDataGridView3(key1);
            this.Visible = false;
        }

    }
}
workerdao
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate;
using NHibernate.Criterion;
using lab4.domain;
 
namespace lab4.dao
{
    public class WorkerDao : GenericDAO<Worker>, IWorkerDAO
    {
       public WorkerDao(ISession session) : base(session) { }
        
        public Worker getWorkerByworkerName(string workerName)
        {
            Worker worker = new Worker();
            worker.workerName = workerName;
            ICriteria criteria = session.CreateCriteria(typeof(Worker)).Add(Example.Create(worker));
            IList<Worker> list = criteria.List<Worker>();
            worker = list[0];
            return worker;
        }
        public IList<Zadachi> getAllZadachiofWorker(string workerName)
        {
            var list = session.CreateSQLQuery(
               "SELECT Zadachi.* FROM Zadachi JOIN Worker" +
               " ON Zadachi.workerid = Worker.Id" +
               " WHERE Worker.workerName='" + workerName + "'")
               .AddEntity("Zadachi", typeof(Zadachi))
               .List<Zadachi>();
            return list;
        }

        public Worker getWorkerByOtdelworkerNameAndLastName(
           string otdelName, string workerName, string lastName)
        {
            var list = session.CreateSQLQuery(
               "SELECT Worker.* FROM Worker JOIN Otdel" +
               " ON Worker.OtdelId = Otdel.Id" +
               " WHERE Otdel.OtdelName='" + otdelName + "'" +
               " and Worker.workerName='" + workerName + "'" +
               " and Worker.LastName='" + lastName + "'")
               .AddEntity("Worker", typeof(Worker))
               .List<Worker>();
            Worker worker = list[0];
            return worker;
        }

    }
}
worker
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lab4.domain
{ //Сущность работника 
    public class Worker:EntityBase 
    {
        private IList<Zadachi> zadachiList = new List<Zadachi>();
        public virtual string workerName { get; set; } 
 
        public virtual string LastName { get; set; } 
 
        public virtual char Sex { get; set; } 
 
        public virtual int Year { get; set; } 
 
        public virtual Otdel Otdel { get; set; }
 
        public virtual IList<Zadachi> ZadachiList
        {
            get { return zadachiList; }
            set { zadachiList = value; }
        }
    }
}
и это уже второй уровень , три класса всего отдел-работник-задачи.. Так вот работников нормально добавляет, а на задачах вылетает. Хотя пишу тоже самое вроде.
вылетает в строке worker = list[0]; а перед етим в лист не считывает походу етого работника, count = 0 там это в обработчике, 1я проц

Решение задачи: «Необработанное исключение типа "System.ArgumentOutOfRangeException" произошло в mscorlib.dll»

textual
Листинг программы
list.Add(worker);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы