Reden Rodriguez Ответов: 2

Не удается найти столбец 0


я не знаю, что не так в моем коде, он всегда останавливается в строке[0]="Select IMO Code"; и он говорит, что не может найти столбец 0 пожалуйста, помогите мне, ребята, вот мой код

private void LoadIMOcode()
        {
            CacheConnection conn = new CacheConnection(cacheconn);
            try
            {
                conn.Open();
                CacheDataAdapter da = new CacheDataAdapter("select STRING(Description,' (',HCode,')') as Description,HCode from CDTAB.HazardousCodes order by Description", conn);
                DataTable dt = new DataTable();
                DataRow row = dt.NewRow();
                row[0] = "Select IMO Code";
                row[1] = "";
                dt.Rows.InsertAt(row, 0);
                cmbIMOcode.DataSource = dt;
                cmbIMOcode.DisplayMember = "Description";
                cmbIMOcode.ValueMember = "HCode";
                cmbIMOcode.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


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

я пытался изменить его разными способами я знаю но это всегда останавливалось на достигнутом

2 Ответов

Рейтинг:
4

Richard Deeming

Похоже, вам не хватает вызова для выполнения запроса и загрузки данных в таблицу:

DataTable dt = new DataTable();
da.Fill(dt); // <-- ADD THIS LINE
DataRow row = dt.NewRow();

Это автоматически создаст столбцы таблицы для вас.

NB: Никогда не делай этого:
catch (Exception ex)
{
    throw ex;
}
Вы только что отбросили трассировку стека исключения, что делает почти невозможным определить, какая строка вызвала исключение.

Если вам действительно нужно повторно создать исключение, просто используйте throw;:
catch (Exception ex)
{
    throw;
}
Но поскольку вы ничего не делаете с исключением, которое вы поймали, нет никакой необходимости ловить его в первую очередь. Просто уберите его try..catch блок.

[C#] правильное повторное выбрасывание исключений в C# (или .NET, чтобы быть общим) – блог Тайлера Фанга[^]


Рейтинг:
0

Bryian Tan

Объект DataTable-это отсутствующий столбец. Вот пример добавления столбца перед вставкой строки.

DataTable dt = new DataTable();
		dt.Columns.Add("Description", typeof(string));
		dt.Columns.Add("Code", typeof(string));