2016-08-26 2 views
1

У меня есть запрос на получение данных в двух столбцах и Добавить еще один вариант '-' sig n. Теперь я хочу отобразить эти данные в раскрывающемся списке . Также в другой функции я должен получить первую часть выбранного первого значения (первый столбец таблицы, используемой для создания вывода) и снова сохранить его в базе данных. Запрос работает отлично.
Теперь мои вопросы,
1) Как отобразить конечный результат в соединенных столбцах в раскрывающемся списке?
2) Как получить значение первого столбца для выбранного индекса выпадающего списка?Как объединить два поля данных в базе данных и отобразить их в выпадающем списке?

Вот мой код

public DataSet getSOCode() 
{ 
    string strQuery = @"select a.AGNTNUM+' - '+a.CLTADDR01 
         from AGNTDTL a, cscsuboffice b, Web_User_Group c 
         where 
         a.ARACDE=b.DESCITEM and 
         b.SHORTDESC=c.BRANCH and 
         a.DTETRM='99999999' and 
         a.AGNTNUM not between '00050000' and '00200000' and 
         a.agntnum <'00300000' and 
         a.agtype not in ('PA','LG','BK') and 
         c.EMPID='000101' 
         order by a.AGNTNUM"; 
    return SqlHelper.ExecuteDataset(dwhConnString, CommandType.Text, strQuery); 
}  

Это код aspx.cs

public void loadSOCode() 
{ 
    DataSet ds = new DataSet(); 
    ds = db.getSOCode(); 


    if (ds.Tables[0].Rows.Count > 0) 
    { 
      ddlSoCode.DataSource = ds.Tables[0]; 
      ddlSoCode.DataTextField ="AGNTNUM" + "CLTADDR01"; 
      ddlSoCode.DataValueField = "AGNTNUM" + "CLTADDR01"; 
      ddlSoCode.DataBind(); 

      ddlSoCode.Items.Insert(0, new ListItem("--Select The Agent--", "--Select The Agent--")); 

    } 
} 
+0

Будет более понятным, если вы добавьте текущий код, который вы используете. –

+0

@ Не повезло, я добавил код. Взгляните – Mike

ответ

1

Изменение запроса, как следующее:

string strQuery = @"select a.AGNTNUM , a.AGNTNUM + ' - ' + a.CLTADDR01 as DisplayItem " + 
        " from AGNTDTL a, cscsuboffice b, Web_User_Group c" + 
        " where .. // give conditions here 

Затем код для связывания будет:

ddlSoCode.DataSource = ds.Tables[0]; 
ddlSoCode.DataTextField ="DisplayItem"; 
ddlSoCode.DataValueField = "AGNTNUM"; 
ddlSoCode.DataBind(); 

Так что SelectedValue даст вам AGNTNUM и выпадающий будет отображаться сочетание a.AGNTNUM and a.CLTADDR01

+0

Это то, что я точно хотел. Спасибо за ответ. – Mike

0

Вы не можете установить DataTextField и DataValueField с комбинацией имен столбцов, на самом деле SQL не возвращает имя столбца в Это дело. Используйте псевдоним, чтобы дать новое имя.

public DataSet getSOCode() 
{ 
    string strQuery = @"select a.AGNTNUM+' - '+a.CLTADDR01 AS NewColumn 
         from AGNTDTL a, cscsuboffice b, Web_User_Group c 
         where 
         a.ARACDE=b.DESCITEM and 
         b.SHORTDESC=c.BRANCH and 
         a.DTETRM='99999999' and 
         a.AGNTNUM not between '00050000' and '00200000' and 
         a.agntnum <'00300000' and 
         a.agtype not in ('PA','LG','BK') and 
         c.EMPID='000101' 
         order by a.AGNTNUM"; 
    return SqlHelper.ExecuteDataset(dwhConnString, CommandType.Text, strQuery); 
} 

и теперь используйте это название столбца для установки поля «Текст и значение».

public void loadSOCode() 
{ 
    DataSet ds = new DataSet(); 
    ds = db.getSOCode(); 


    if (ds.Tables[0].Rows.Count > 0) 
    { 
      ddlSoCode.DataSource = ds.Tables[0]; 
      ddlSoCode.DataTextField ="NewColumn"; 
      ddlSoCode.DataValueField = "NewColumn"; 
      ddlSoCode.DataBind(); 

      ddlSoCode.Items.Insert(0, new ListItem("--Select The Agent--", "--Select The Agent--")); 

    } 
} 
Смежные вопросы