2013-02-24 2 views
1

Я пытаюсь разработать страницу ASP.NET, которая будет отображать записи из моей базы данных. В моем запросе около 16 столбцов. Но если я поставлю запрос со всеми 16 столбцами в моем коде, GridView не появится.Все данные не соответствуют виду сетки данных

Он отображается на странице, только если количество столбцов в моем запросе не превышает 8 столбцов. Я не знаю, что делать, может ли кто-нибудь помочь мне с этим?

эти примеры кода запроса и конца греться заселить запрос

<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" 
     GridLines="None" Width="900px"> 
     <AlternatingRowStyle BackColor="White" /> 
     <EditRowStyle BackColor="#2461BF" /> 
     <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#EFF3FB" /> 
     <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
     <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
     <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
     <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
     <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
    </asp:GridView> 

И это, как я заполнить ее:

Try 
     myconn.Open() 
     Dim sqlstring As String = "SELECT a.account_id AS 'No', a.accountid_number AS 'ID', CONCAT(account_name,' ',account_midname,' ',account_surname) AS 'Student Name', a.account_type As 'Type', l.live_mail AS 'Acount Name' AS 'Password' FROM account a, liveaccount l WHERE a.account_id = l.l_account_id" 
     Dim smd As MySqlCommand 
     smd = New MySqlCommand(sqlstring, myconn) 
     smd.CommandType = CommandType.Text 

     Dim da As New MySqlDataAdapter(smd) 
     Dim cb As New MySqlCommandBuilder(da) 
     Dim ds As New DataSet() 
     da.Fill(ds) 

     GridView1.DataSource = ds.Tables(0) 
     GridView1.DataBind() 

     myconn.Close() 
    Catch ex As Exception 
     myconn.Close() 
    End Try 

это запрос, который работает. Если добавить еще один столбец больше она не показывает:

SELECT a.account_id AS 'No', a.accountid_number AS 'ID', CONCAT(account_name,' ',account_midname,' ',account_surname) AS 'Student Name', a.account_type As 'Type', l.live_mail AS 'Acount Name' FROM account a, liveaccount l WHERE a.account_id = l.l_account_id" 

и это тот, который предполагают, чтобы работать, но если вставить его GridView не отображается:

SELECT a.account_id AS 'No', a.accountid_number AS 'ID', a.account_type AS 'Type', a.account_name || ' ' || a.account_midname || ' ' || a.account_surname AS 'Student Name', a.account_birthdate AS 'BirthDate', l.gender AS 'Gender', l.position AS 'Position', l.office_department AS 'Office/Department', l.date_created AS 'Date Created', time_created AS 'Time Created', l.office_tel AS 'Tel No', office_localno AS 'Office Tel', l.contact_no 'Cell Phone', l.alternate_email AS 'Other Email', l.classification AS 'Classification', l.registered AS 'Status' FROM account a, liveaccount l WHERE a.account_id = l.l_account_id AND l.registered = 'NOTREGISTERED' AND a.account_deleted = 0 ORDER BY a.account_id Desc; 
+0

В gridview нет предела столбцов, это, вероятно, проблема css, сосредоточиться на этом. –

+0

Проверьте конкатенацию в столбце «Имя студента» для второго выбора, он отличается от первого, возможно, вам просто нужно использовать функцию «CONCAT». –

ответ

0

Подтвердили ли вы ваш DataSet имеет какие-либо данные после запуска запроса? Вы можете попробовать вставить свой SQL в студию управления или Query Analyzer и посмотреть, есть ли у вас проблема с кодом SQL.

Кроме того, вы используете try/catch, но не обнаруживаете какого-либо конкретного исключения. Я бы изменил это на это. Это C#, вы можете легко перевести на VB.

catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString());} 

Это покажет, что действительно происходит при загрузке данных и любых ошибках при привязке данных.

+0

Я пробовал. Никаких изменений в выходе. Я считаю, что это имеет какое-то отношение к размеру. если я увеличусь3, размер появится. Но я не могу увеличить размер за пределами границ моего шаблона. Это испортит страницу. Я нашел, если есть способ включить все столбцы с gridView – meks

+0

Я попытался поймать mistae таким образом: Page.ClientScript.RegisterStartupScript (Me.GetType(), «ErrorAlert», exmess, True) И это сработало. Атрибут даты был проблемой, я ввел его dd-mm-yyy вместо yyyy-mm-dd – meks

+0

Теперь он работает в полном порядке. Хотя, если пользователь вводит неверную страницу просмотра данных, будет снова снижаться. Вы знаете, как я могу использовать dateTimePicker в ASP.net вместо простого текстового поля? – meks

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