[Solved] Input array is longer than the number of columns in this table?


You have only one column and you are not adding it to the DataTable:

DataColumn datecolumn = new DataColumn();
foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(entity))
{
    datecolumn.AllowDBNull = true;
    datecolumn.ColumnName = prop.Name == "Id" ? "ID" : prop.Name;
    datecolumn.DataType = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
    columns[jj] = prop.Name == "Id" ? "ID" : prop.Name;                    
    jj++;
}

Instead you have to create them in the loop and then add them(last line in the loop body):

foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(entity))
{
    DataColumn datecolumn = new DataColumn();
    datecolumn.AllowDBNull = true;
    datecolumn.ColumnName = prop.Name == "Id" ? "ID" : prop.Name;
    datecolumn.DataType = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
    columns[jj] = prop.Name == "Id" ? "ID" : prop.Name;                    
    jj++;

    dataTable.Columns.Add(datecolumn);
}

0

solved Input array is longer than the number of columns in this table?