![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 10.11.2019
Сообщений: 2
|
![]()
Нажимаю на строчку в таблице - выдает эту ошибку (System.InvalidCastException: "Заданное приведение является недопустимым.").
ошибка в строчке id = (int?)dataGridView1[0, dataGridView1.SelectedRows[0].Index].Value; В чем может быть проблема? Датагрид настроен верно, в других формах ошибку не выдает, настроены одинаково using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace CompSecurity { public partial class Workers : Form { int? id; void LoadData(Context db) { dataGridView1.DataSource = db.Workers.ToList(); Clear(); } void Clear() { dataGridView1.ClearSelection(); id = null; txtBoxWorkerFIO.Text = txtBoxWorkerSalary.Text = txtBoxWorkerCitizenship.Text = txtBoxWorkerDateOfBirth.Text = txtBoxWorkerAddress.Text = txtBoxPhone.Text = ""; } bool CheckData() { return txtBoxWorkerFIO.Text != "" && txtBoxWorkerSalary.Text != "" && txtBoxWorkerCitizenship.Text != "" && txtBoxWorkerDateOfBirth.Text != "" && txtBoxWorkerAddress.Text != "" && txtBoxPhone.Text != ""; } Worker FindWorkers(Context db) { return db.Workers.Where(s => s.WorkerId == id).First(); } public Workers() { InitializeComponent(); } private void Workers_Load_1(object sender, EventArgs e) { using (Context db = new Context()) { LoadData(db); } } private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { id = (int?)dataGridView1[0, dataGridView1.SelectedRows[0].Index].Value; using (Context db = new Context()) { Worker worker = FindWorkers(db); txtBoxWorkerFIO.Text = worker.FIO; txtBoxWorkerSalary.Text = worker.Salary; txtBoxWorkerCitizenship.Text = worker.Citizenship; txtBoxWorkerDateOfBirth.Text = worker.DateOfBirth; txtBoxWorkerAddress.Text = worker.Address; txtBoxPhone.Text = worker.PhoneNumber; } } private void BtnInsert_Click(object sender, EventArgs e) { if (!CheckData()) MessageBox.Show("Введите данные"); else using (Context db = new Context()) { db.Workers.Add( new Worker { FIO = txtBoxWorkerFIO.Text, Salary = txtBoxWorkerSalary.Text, Citizenship = txtBoxWorkerCitizenship.Text, DateOfBirth = txtBoxWorkerDateOfBirth.Text, Address = txtBoxWorkerAddress.Text, PhoneNumber = txtBoxPhone.Text }); db.SaveChanges(); LoadData(db); } Clear(); } private void BtnUpdate_Click(object sender, EventArgs e) { } private void BtnDelete_Click(object sender, EventArgs e) { using (Context db = new Context()) { Worker worker = FindWorkers(db); if (MessageBox.Show($"Вы уверены, что хотите удалить работника {worker.FIO}?\n", "Подтверждение удаления", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (worker.Services.Count > 0) { var service = db.Services.Where(s => s.WorkerId == id); foreach (Service s in service) { db.Services.Remove(s); } MessageBox.Show("Также будет удалена запись о предоставлении услуг"); } db.Workers.Remove(worker); db.SaveChanges(); LoadData(db); } else Clear(); } } } } |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 147
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка C2440 приведение типов: невозможно преобразовать "std::_Array_iterator<_Ty,65>" в "int" | NIKITAY | Общие вопросы C/C++ | 13 | 07.01.2019 11:51 |
Приведение является недопустимым по неявной причине | kainapro | C# (си шарп) | 0 | 26.07.2017 11:01 |
Помогите исправить ошибку: вывести все "недопалиндромы" из указанного диапазона (от a до b). "недопалиндром" - число которое само не является палиндромов,но сумма его цифр является | jeppa | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 06.10.2016 10:57 |
Невозможно преобразовать параметр 1 из "System::Net::Mail::SmtpClient ^" в "System::String ^" | Вероника99 | C# (си шарп) | 4 | 18.05.2015 22:22 |
C# Ошибка "System.Random" не содержит определение для "Range" | svetlana_klshv | Помощь студентам | 2 | 16.05.2015 21:05 |