Попробуйте это:
public static DataTable GetProductList()
{
DatabaseAdapter dba = DatabaseAdapter.GetInstance();
// Return a second, aliased column that concatenates PRODUCT_ID
// with " - " and DESCRIPTION (alias NEW_DESCRIPTION)
string sqlQuery = ("SELECT PRODUCT_ID, PRODUCT_ID + " - " + DESCRIPTION AS NEW_DESCRIPTION FROM PRODUCT");
DataTable dt = new DataTable();
dt.Load(dba.QueryDatabase(sqlQuery));
return dt;
}
private void PopulateProductList()
{
try
{
ProductList.DataSource = BusinessLayerHandler.GetUnitList();
// Assign the NEW_DESCRIPTION column to the DataTextField
ProductList.DataTextField = "NEW_DESCRIPTION";
ProductList.DataValueField = "PRODUCT_ID";
ProductList.DataBind();
}
catch
{
new Logging("E00080002");
Alert("Failed to Import Product List");
}
}
По сути, выберите столбец PRODUCT_ID и столбцы PRODUCT_ID и DESCRIPTION, объединенные вместе - для облегчения ссылок я связал второй столбец.
Затем вы можете назначить PRODUCT_ID для DataValueField DropDownList и связанного столбца (в данном случае NEW_DESCRIPTION) для DataTextField.
EDIT
Если вы просто хотите получить идентификатор продукта (для полей значения DropDownList) и описание продукта для текста параметра раскрывающегося списка, измените параметр Выбрать следующим образом:
string sqlQuery = ("SELECT PRODUCT ID, DESCRIPTION FROM PRODUCT");
, а затем измените DataTextField и DataValueField следующим образом:
ProductList.DataTextField = "NEW_DESCRIPTION";
ProductList.DataValueField = "PRODUCT_ID";
Синтаксис для SQL может немного отличаться для Oracle (я использую синтаксис SQL Server), но концепция та же самая - если вы хотите, чтобы значение одного столбца для поля значения DropDownList и значение другого столбца для DropDownList's текстовое поле, просто выберите оба столбца из таблицы и назначьте их соответствующим образом.
Эта модификация создаст DropDownList со следующими элементами:
Photo Album
File
Pencil Box
и соответствующие значения для предметов как:
1
2
3