Таблица исключений: нет никакого значения для индекса 1 - PullRequest
0 голосов
/ 07 сентября 2018

Я не могу решить это. См. Код ниже, при добавлении (второй) строки к сетке данных (в запущенной программе) я получаю исключение ниже;

исключение datagridview: System.IndexOutOfRangeException: нет значения для индекса 1. в System.Windows.Forms.CurrencyManager.get_Item (Int32index) bij System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError (Int323) rowinde

погуглил решения, но не могу найти правильное. У кого-нибудь есть идеи, как это решить?

(написал другие подобные программы с большим количеством данных в наборе данных, где у меня нет этой проблемы, поэтому я действительно не понимаю, почему она не работает, и я только недавно начал изучать код :))

    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 Garages
{
    public partial class FrmGarages : Form
    {
        DataSet datasetGarages = new DataSet("Garages");
        BindingSource bindingSourceGarages = new BindingSource();

        public FrmGarages()
        {
            InitializeComponent();
            datasetGarages.Tables.Add(createDataTableGarages());
            bindingSourceGarages.DataSource = datasetGarages.Tables["Garages"];

            txbChassisnummer.DataBindings.Add("Text", bindingSourceGarages, "Chassisnummer");
            txbKenteken.DataBindings.Add("Text", bindingSourceGarages, "Kenteken");
            dtpFabricagedatum.DataBindings.Add("Value", bindingSourceGarages, "Fabricagedatum");
            dtpDatumOpKenteken.DataBindings.Add("Value", bindingSourceGarages, "DatumOpKenteken");
            txbMerk.DataBindings.Add("Text", bindingSourceGarages, "Merk");
            txbType.DataBindings.Add("Text", bindingSourceGarages, "Type");
            txbKleur.DataBindings.Add("Text", bindingSourceGarages, "Kleur");
            txbBrandstof.DataBindings.Add("Text", bindingSourceGarages, "Brandstof");
            txbAantalKilowats.DataBindings.Add("Text", bindingSourceGarages, "AantalKilowats");
            txbAantalPortieren.DataBindings.Add("Text", bindingSourceGarages, "AantalPortieren");
            txbModel.DataBindings.Add("Text", bindingSourceGarages, "Model");
            txbTrekhaak.DataBindings.Add("Text", bindingSourceGarages, "Trekhaak");

            cmbMerk.DataSource = bindingSourceGarages;
            cmbMerk.DisplayMember = "Merk";
            cmbType.DataSource = bindingSourceGarages;
            cmbType.DisplayMember = "Type";
            cmbBrandstof.DataSource = bindingSourceGarages;
            cmbBrandstof.DisplayMember = "Brandstof";
            cmbAantalPortieren.DataSource = bindingSourceGarages;
            cmbAantalPortieren.DisplayMember = "AantalPortieren";


            dgvGarages.DataSource = bindingSourceGarages;

        }

        private void btnEinde_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private DataTable createDataTableGarages()
        {
            DataTable dtGarages = new DataTable("Garages");

            DataColumn Chassisnummer = new DataColumn("Chassisnummer", typeof(string));
            Chassisnummer.Unique = true;
            dtGarages.Columns.Add(Chassisnummer);


            //dtGarages.Columns.Add("Chassisnummer", typeof(string));
            //dtGarages.Columns["Chassisnummer"].Unique = true;
            dtGarages.Columns.Add("Kenteken", typeof(string));
            dtGarages.Columns["Kenteken"].MaxLength = 8;
            dtGarages.Columns["Kenteken"].Unique = true;
            dtGarages.Columns["Kenteken"].AllowDBNull = true;

            dtGarages.Columns.Add("FabricageDatum", typeof(DateTime));
            dtGarages.Columns.Add("DatumOpKenteken", typeof(DateTime));
            dtGarages.Columns["DatumOpKenteken"].AllowDBNull = true;
            dtGarages.Columns.Add("Merk", typeof(string));
            dtGarages.Columns["Merk"].MaxLength = 25;
            dtGarages.Columns.Add("Type", typeof(string));
            dtGarages.Columns["Type"].MaxLength = 25;
            dtGarages.Columns.Add("Kleur", typeof(Color));
            dtGarages.Columns.Add("Brandstof", typeof(string));
            dtGarages.Columns["Brandstof"].MaxLength = 10;
            dtGarages.Columns.Add("AantalKilowats", typeof(double));
            dtGarages.Columns.Add("AantalPortieren", typeof(byte));
            dtGarages.Columns.Add("Model", typeof(string));
            dtGarages.Columns["Model"].MaxLength = 15;
            dtGarages.Columns.Add("Trekhaak", typeof(bool));

            dtGarages.PrimaryKey = new DataColumn[] { Chassisnummer };

            return dtGarages; 
        }

        private void dgvGarages_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            if (this.dgvGarages.Columns[e.ColumnIndex].Name.Equals("Kleur"))
            {
                if (colorDialog1.ShowDialog() == DialogResult.OK)
                {
                    this.dgvGarages.Rows[e.RowIndex].Cells[6].Value = colorDialog1.Color;
                }
            }
        }

        private void dgvGarages_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            dgvGarages.Refresh();

        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...