Member 13040174 Ответов: 1

Входной массив длиннее, чем количество столбцов в этой таблице.


Я получаю здесь ошибку. кто нибудь помогите где я ошибся

Что я уже пробовал:

private DataTable Createds()
      {
          int i = 0;
          DataTable table = new DataTable("list");
          var _with1 = table.Columns;
          _with1.Add("FACESHEET_ID ", typeof(string));
          _with1.Add("ROW_NUMBER", typeof(string));
          _with1.Add("COLUMN_A", typeof(string));
          _with1.Add("COLUMN_B", typeof(string));
          _with1.Add("COLUMN_C", typeof(string));
          _with1.Add("COLUMNNAME_A", typeof(string));
          _with1.Add("COLUMNNAME_B", typeof(string));
          _with1.Add("COLUMNNAME_C", typeof(string));
          TextBox txt = default(TextBox);
          TextBox txtname = default(TextBox);
          var _with2 = table.Rows;
          for (i = 1; i <= DAL_Common.ADONullInt(ddlRow.SelectedValue); i++)
          {
              string[] vals = new string[9];
              txt = (TextBox)FindControl("txtdesc" + i + "" + 1 + "");
              vals[0] = hidID.Value;
              vals[1] = DAL_Common.ADONullString(i);
              vals[2] = txt.Text;
              if (DAL_Common.ADONullInt(ddlColumn.SelectedValue) > 1)
              {
                  txt = (TextBox)FindControl("txtdesc" + i + "" + 2 + "");
                  vals[3] = txt.Text;
              }
              else
              {
                  vals[3] = "";
              }

              if (DAL_Common.ADONullInt(ddlColumn.SelectedValue) > 2)
              {
                  txt = (TextBox)FindControl("txtdesc" + i + "" + 3 + "");
                  vals[4] = txt.Text;
              }
              else
              {
                  vals[4] = "";
              }
              txtname = (TextBox)FindControl("txtName" + i + "" + 1 + "");
              vals[5] = txtname.Text;
              if (DAL_Common.ADONullInt(ddlColumn.SelectedValue) > 1)
              {
                  txtname = (TextBox)FindControl("txtName" + i + "" + 2 + "");
                  vals[6] = txtname.Text;
              }
              else
              {
                  vals[6] = "";
              }

              if (DAL_Common.ADONullInt(ddlColumn.SelectedValue) > 2)
              {
                  txtname = (TextBox)FindControl("txtName" + i + "" + 3 + "");
                  vals[7] = txtname.Text;
              }
              else
              {
                  vals[7] = "";
              }
              _with2.Add(vals);
          }
          return table;
      }

1 Ответов

Рейтинг:
8

Jochen Arndt

У вас есть 8 столбцов, но массив из 9 строк:

string[] vals = new string[9];
Чтобы изменить размер массива 8.


Member 13040174

большое спасибо!