2013-02-24 40 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問題,專注於此。 – 2013-02-25 00:05:50

+0

驗證第二次選擇的「Student Name」列上的連接,它與第一個不同,也許你只需要使用CONCAT功能。 – 2013-02-25 00:24:13

回答

0

您是否驗證查詢運行後,DataSet是否有任何數據?你可以嘗試將你的SQL粘貼到管理工作室或查詢分析器中,看看你是否有SQL代碼的問題。

此外,您正在使用try/catch,但沒有捕獲任何特定的異常。我會改變這一點。這是C#,你應該能夠很容易地轉換到VB。

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

這將顯示加載數據時真正發生的情況以及數據綁定中的任何錯誤。

+0

我試過了。輸出沒有任何變化。我相信這與尺寸有關。如果我增加它的大小。但我無法在模板邊界之外增加大小。它會毀掉網頁。我想如果有任何方法將所有列與gridView結合 – meks 2013-02-25 02:14:34

+0

我試圖用這種方式來捕獲mistae:Page.ClientScript.RegisterStartupScript(Me.GetType(),「ErrorAlert」,exmess,True)它工作。日期屬性是一個問題,我輸入它dd-mm-yyy而不是yyyy-mm-dd – meks 2013-02-25 06:15:01

+0

現在它工作正常。雖然如果用戶輸入錯誤的數據查看器頁面會再次下降。你知道我怎麼能在ASP.net中使用dateTimePicker而不是簡單的文本框? – meks 2013-02-25 06:16:18