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

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

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

обработчик формы
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using NHibernate;
  10. using lab4.dao;
  11. using lab4.domain;
  12. using lab4.mapping;
  13. namespace lab4
  14. {
  15. public partial class Form5 : Form
  16. {
  17. private ISession session;
  18. private Form1 perent;
  19. private string key1;
  20. private string key2;
  21. private string key3;
  22. public void setSession(ISession session)
  23. {
  24. this.session = session;
  25. }
  26. public void setPerent(Form1 perent)
  27. {
  28. this.perent = perent;
  29. }
  30. public void setKey1(string key1)
  31. {
  32. this.key1 = key1;
  33. }
  34. public void setKey2(string key2)
  35. {
  36. this.key2 = key2;
  37. }
  38. public void setKey3(string key3)
  39. {
  40. this.key3 = key3;
  41. }
  42. public void setTextBox1Text(string text)
  43. {
  44. this.textBox1.Text = text;
  45. }
  46. public void setTextBox2Text(string text)
  47. {
  48. this.textBox2.Text = text;
  49. }
  50. public void setTextBox3Text(string text)
  51. {
  52. this.textBox3.Text = text;
  53. }
  54.  
  55. public void setButton1Visible(bool visible)
  56. {
  57. this.button1.Visible = visible;
  58. }
  59. public void setButton2Visible(bool visible)
  60. {
  61. this.button2.Visible = visible;
  62. }
  63. public Form5()
  64. {
  65. InitializeComponent();
  66. }
  67. private void button1_Click(object sender, EventArgs e)
  68. {
  69. DAOFactory dao1 = new NHibernateDAOFactory(session);
  70. IWorkerDAO workerDAO = dao1.getWorkerDAO();
  71. Worker worker = workerDAO.getWorkerByworkerName(key1);
  72.  
  73. Zadachi zadachi = new Zadachi();
  74. zadachi.zadachi_name = textBox1.Text;
  75. zadachi.zadachi_prioritet = textBox2.Text;
  76. zadachi.zadachi_deadline = textBox3.Text;
  77. worker.ZadachiList.Add(zadachi);
  78. zadachi.worker = worker;
  79. workerDAO.SaveOrUpdate(worker);
  80. perent.fillDataGridView3(key1);
  81. this.Visible = false;
  82. }
  83.  
  84. }
  85. }
workerdao
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using NHibernate;
  6. using NHibernate.Criterion;
  7. using lab4.domain;
  8. namespace lab4.dao
  9. {
  10. public class WorkerDao : GenericDAO<Worker>, IWorkerDAO
  11. {
  12. public WorkerDao(ISession session) : base(session) { }
  13. public Worker getWorkerByworkerName(string workerName)
  14. {
  15. Worker worker = new Worker();
  16. worker.workerName = workerName;
  17. ICriteria criteria = session.CreateCriteria(typeof(Worker)).Add(Example.Create(worker));
  18. IList<Worker> list = criteria.List<Worker>();
  19. worker = list[0];
  20. return worker;
  21. }
  22. public IList<Zadachi> getAllZadachiofWorker(string workerName)
  23. {
  24. var list = session.CreateSQLQuery(
  25. "SELECT Zadachi.* FROM Zadachi JOIN Worker" +
  26. " ON Zadachi.workerid = Worker.Id" +
  27. " WHERE Worker.workerName='" + workerName + "'")
  28. .AddEntity("Zadachi", typeof(Zadachi))
  29. .List<Zadachi>();
  30. return list;
  31. }
  32.  
  33. public Worker getWorkerByOtdelworkerNameAndLastName(
  34. string otdelName, string workerName, string lastName)
  35. {
  36. var list = session.CreateSQLQuery(
  37. "SELECT Worker.* FROM Worker JOIN Otdel" +
  38. " ON Worker.OtdelId = Otdel.Id" +
  39. " WHERE Otdel.OtdelName='" + otdelName + "'" +
  40. " and Worker.workerName='" + workerName + "'" +
  41. " and Worker.LastName='" + lastName + "'")
  42. .AddEntity("Worker", typeof(Worker))
  43. .List<Worker>();
  44. Worker worker = list[0];
  45. return worker;
  46. }
  47.  
  48. }
  49. }
worker
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace lab4.domain
  6. { //Сущность работника
  7. public class Worker:EntityBase
  8. {
  9. private IList<Zadachi> zadachiList = new List<Zadachi>();
  10. public virtual string workerName { get; set; }
  11. public virtual string LastName { get; set; }
  12. public virtual char Sex { get; set; }
  13. public virtual int Year { get; set; }
  14. public virtual Otdel Otdel { get; set; }
  15. public virtual IList<Zadachi> ZadachiList
  16. {
  17. get { return zadachiList; }
  18. set { zadachiList = value; }
  19. }
  20. }
  21. }
и это уже второй уровень , три класса всего отдел-работник-задачи.. Так вот работников нормально добавляет, а на задачах вылетает. Хотя пишу тоже самое вроде.
вылетает в строке worker = list[0]; а перед етим в лист не считывает походу етого работника, count = 0 там это в обработчике, 1я проц

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

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

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


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

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

14   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы