Каков наилучший способ получить имя столбца в asp.net с использованием ODBC? - PullRequest
0 голосов
/ 02 февраля 2009

У меня есть база данных, которая имеет четыре столбца, как это

уровень_1, уровень_2, уровень_3, уровень_4

Есть также идентификатор, имя и т. Д., Но только эти четыре имеют значение для меня на данный момент.

Мне нужно знать, какой столбец по имени столбца имеет значение BOSS.

Например, level_2 может иметь значение BOSS. Мне нужно знать, что один из четырех столбцов имеет код BOSS и какой столбец, по имени столбца, это.

Причина в том, что мне придется позже обновить эту строку, но я никогда не знаю, где будет значение BOSS. Например, это может быть уровень_4.

Я знаю, что в DataSet есть свойство columnname, но я не могу понять, как использовать это здесь. Я не могу опубликовать свой код, потому что есть много итераций, ни одна из которых не работает. Я надеюсь, что упускаю из виду нечто очевидное.

Я использую ASP.NET 2.0 и ODBC.

Спасибо за любые идеи.

просто чтобы уточнить - мне не нужно знать, как получить имя столбца как таковое. Для этого хорошо подходит свойство columnname. Я не знаю, какой столбец будет иметь значение BOSS выше. Как только я смогу определить, что получу значение свойства columnname.

Причина, по которой я не знаю, в каком столбце будет указано BOSS, заключается в том, что есть другие значения, которые могут быть в любом из четырех, поэтому специалист по вводу данных должен выбрать открытое поле и ввести код - это старая база данных приложение, которое я унаследовал.

обновление:

Вот то, что я придумал. Мне это не нравится, но вот оно. Это работает, но это не так:

        String[] myValues = new String[5] {"BOSS", "ANOTHERCODE", "ANOTHERCODE", "ANOTHERCODE", "ANOTHERCODE"};
        int x = 0;
            foreach (String level in myValues)
            {
                foreach (DataColumn dc in ds.Tables[0].Columns)
                {
                    String myColumnValue = ds.Tables[0].Rows[0][x].ToString();
                    if (myColumnValue == level)
                    { return ds.Tables[0].Columns[x].ColumnName; }
                    x += 1;
                }
                x = 0;
            }

Ответы [ 2 ]

1 голос
/ 02 февраля 2009

Хорошо, у вас есть 4 столбца, которые могут иметь значение BOSS. Я думаю, что лучший способ решить вашу проблему - циклически обдумывать эти 4 столбца до тех пор, пока вы не получите значение BOSS. Когда вы его найдете, сохраните имя столбца в переменной, чтобы вы могли получить его позже.

0 голосов
/ 02 февраля 2009

Я не уверен, что вам нужно ... ваш вопрос немного размыт ...

Если вам нужен доступ к имени столбца, сделайте так: DataTable.Columns [columnNumber] .ColumnName

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