2015-12-14 2 views
0

Все столбцы отображаются корректно в DataGrid, за исключением одного. Я побежал этот SQL запрос в MySqlWorkbench и он не работает, так что ничего плохого в том, что:System.Byte [] отображается в столбце Datagrid

string query = @"SELECT c.*,cc.CountryName ,(Select UserName FROM users WHERE User_ID = c.CreatedByUser) AS CreatedBy, 
         (select GROUP_CONCAT(AreaDescription) from pxpcountycodes where countyid=c.id) as AreaDescription, 
         (select GROUP_CONCAT(cmr.AccountCode)) as Member " + 
        " FROM counties c " + 
        " LEFT JOIN Countries cc ON c.CountryID = cc.ID " + 
        " LEFT JOIN PXPCountyCodes PXPc on c.ID = PXPc.CountyID" + 
        " LEFT JOIN customer cmr ON PXPc.MemberID = cmr.ID " + 
        " WHERE c.Company_ID = ?companyID "; 

И код DataGrid:

<asp:DataGrid runat="server" CssClass="tblResults" OnItemDataBound="dgList_ItemCreated" AllowSorting="true" OnSortCommand="dgList_Sort" ID="dgList" DataKeyField="ID" AutoGenerateColumns="false"> 
       <HeaderStyle CssClass="tblResultsHeader" /> 
       <AlternatingItemStyle BackColor="#EEEEEE" /> 
       <Columns> 
        <asp:BoundColumn DataField="CountyName" HeaderText="County Name/PostCode" SortExpression="c.CountyName" ></asp:BoundColumn> 
        <asp:BoundColumn DataField="Description" HeaderText="Description" SortExpression="c.Description"></asp:BoundColumn> 
        <asp:BoundColumn DataField="Member" HeaderText="Member" SortExpression="Member"/> 
        <asp:BoundColumn DataField="CountryName" HeaderText="Country" SortExpression="cc.CountryName"></asp:BoundColumn>     
        <asp:BoundColumn DataField="CountyPostCode" HeaderText="County/PostCode" SortExpression="c.CountyPostCode"></asp:BoundColumn> 
        </Columns> 
      </asp:DataGrid> 

Проблема заключается с Member колонкой. В этом столбце отображается список компаний, поэтому, например, столбец должен отображать CONWAY,NGWCLARE. Некоторые столбцы пытаются отображать около 5 компаний, так что длина вызывает проблему?

код позади сетки:

DataSet ds = Lookups.County.GetAllCounties(Company.Current.CompanyID, ddlSearchBy.SelectedItem.Value, txtSearchBy.Text, IsActive, rbl_both.Checked, OrderBy, false, -1, "", 0); 

     if (ds.Tables[0].Rows.Count > 0) 
     { 
      dgList.DataSource = ds.Tables[0]; 
      dgList.DataBind(); 
     } 
+0

Можете ли вы разместить код за кодом? Как вы привязываете DataGrid? –

+0

@RahulSingh Я добавил код к моему вопросу. Да, я привязываю DataGrid. Все столбцы, кроме «Member», все отображаются – user123456789

+0

Действительно ли существует необходимость SELECT перед GROUP_CONCAT (cmr.AccountCode)? – sachin

ответ

1

Попробуйте этот запрос. Результат CASTing GROUP_CONCAT AS CHAR должен решить проблему.

string query = @"SELECT c.*,cc.CountryName ,(Select UserName FROM users WHERE User_ID = c.CreatedByUser) AS CreatedBy, 
         (select GROUP_CONCAT(AreaDescription) from pxpcountycodes where countyid=c.id) as AreaDescription, 
         CAST(GROUP_CONCAT(cmr.AccountCode) As CHAR) as Member " + 
        " FROM counties c " + 
        " LEFT JOIN Countries cc ON c.CountryID = cc.ID " + 
        " LEFT JOIN PXPCountyCodes PXPc on c.ID = PXPc.CountyID" + 
        " LEFT JOIN customer cmr ON PXPc.MemberID = cmr.ID " + 
        " WHERE c.Company_ID = ?companyID "; 
+0

спасибо, что это сработало – user123456789

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