Необработанное исключение типа "System.ArgumentOutOfRangeException" произошло в mscorlib.dll - C#
Формулировка задачи:
обработчик формы
workerdao
worker
и это уже второй уровень , три класса всего отдел-работник-задачи.. Так вот работников нормально добавляет, а на задачах вылетает. Хотя пишу тоже самое вроде.
Листинг программы
- 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;
- }
- }
- }
Листинг программы
- 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;
- }
- }
- }
Листинг программы
- 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д