2013-02-24 79 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