为啥我使用gridview控件只能显示一行数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我使用gridview控件只能显示一行数据相关的知识,希望对你有一定的参考价值。

你应该把每一条语句都放在一个数组或者集合对象也行必须动态添加进去还得判断是否有下一条记录给你个这段代码段
objarraylist
=
new
ArrayList();
while
(objSqlDataReader.Read())

if
(objSqlDataReader.HasRows)

ArrayList
al
=
new
ArrayList();
al.Add(objSqlDataReader.GetString(1));
al.Add(objSqlDataReader.GetString(2));
al.Add(objSqlDataReader.GetString(3));
al.Add(objSqlDataReader.GetString(4));
al.Add(objSqlDataReader.GetString(5));
al.Add(objSqlDataReader.GetString(6));
al.Add(objSqlDataReader.GetString(7));
objarraylist.Add(al);


这是C#的把数据库的每一列都放在集合里面再事例一个集合把存放每一列数据的集合放在新的集合里(也就是一行的数据)!调用就是把每一行的数据里的哪一个列!
参考技术A gridview被其他布局包含时 不指定高度会出现只能显示一行的问题 需要继承gridview重写测量方法

用于获取重复记录并在 Gridview 中显示为一行的 SQL 查询

【中文标题】用于获取重复记录并在 Gridview 中显示为一行的 SQL 查询【英文标题】:SQL Query for Getting a Duplicate Record and Show it in One Row in Gridview 【发布时间】:2017-04-01 21:33:48 【问题描述】:

所以我只需要在一行中显示重复记录的数据。

请看图片Record

员工有不止一份工作,但我只需要查看员工的 empno、名字、姓氏、实体和位置,因此我只需要一行记录。

我尝试使用SELECT DISTINCT,但它不起作用。

这是我的代码

Protected Sub BindUsersGrid()

    Dim Con As New SqlConnection
    Con = getConn()

    Dim ds As DataSet = GetRecord("SELECT DISTINCT MASTERID, USERID, EMPNO, LASTNAME, FIRSTNAME, ENTITY, LOCATION, EMAIL, BDATE, SEX, CONTACT_NO, IS_RESIGNED, LOCALNAME, " & _
                                    "REGION, COUNTRY " & _
                                    "FROM EMP_MASTERTBL " & _
                                    "ORDER BY LASTNAME, FIRSTNAME, MASTERID")

    Me.myDataTable = ds.Tables(0)
    Me.gvUsers.DataSource = Me.myDataTable
    Me.gvUsers.DataBind()
    Session("gvData") = myDataTable

End Sub

我的代码可能有什么问题?你能给我其他的想法或示例或其他代码吗?

非常感谢。

【问题讨论】:

我没有发现您的查询有任何问题。这个实际查询的输出是什么?为什么会出错? 这个查询的实际输出是我发布的图像。它显示同一员工的两条记录或两行。我只需要一行我得到的相同员工详细信息。 您实际上希望在结果集中包含哪些 。您的DISTINCT提及这些列。我的猜测是,您向我们展示的两条记录没有不同,并且在一列或多列中有所不同(在显示的列中并不相同)。 结果集中我真正想要的列是 Empno、firstname、lastname、entity 和 location。是的,这两条记录在一列中有所不同,即职称。 删除 distinct 关键字并发布查询的实际结果,以便您查看哪些列不相似 【参考方案1】:

当您执行SELECT DISTINCT 时,数据库将返回与所有 列不同的记录。这意味着,如果您想要在 4 列方面不同的记录,但您选择 5,那么您可能会在结果集中获得看似重复的内容。根据您告诉我们的情况,以下查询可能符合您的要求:

SELECT DISTINCT EMPNO, LASTNAME, FIRSTNAME, ENTITY, LOCATION
FROM EMP_MASTERTBL
ORDER BY LASTNAME, FIRSTNAME

【讨论】:

以上是关于为啥我使用gridview控件只能显示一行数据的主要内容,如果未能解决你的问题,请参考以下文章

为啥wpf的mainwindow中只能插入一个控件

数据控件GridView、DataList和Repeater都能实现数据表中多行数据的显示

asp.net 如何访问gridview控件中每一行的label控件

Gridview中checkbox选择绑定字段时为啥是不可编辑的

无记录时显示gridview表头,并增加一行显示“没有记录”绑定SqlDataSource控件时

DevExpress 中gridview怎么才能新建一行?其中的gridview1.AddNewRecord()方法没用