gridcontrol从表为空时如何显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gridcontrol从表为空时如何显示相关的知识,希望对你有一定的参考价值。

您好,当GridControl表为空时,可以使用以下方法来显示:

1. 使用“EmptyText”属性:可以在GridControl中设置“EmptyText”属性,以在表为空时显示指定的文本,如“没有可用数据”。

2. 使用“ShowEmptyText”属性:可以在GridControl中设置“ShowEmptyText”属性,以在表为空时显示指定的文本,如“没有可用数据”。

3. 使用“EmptyDataRowStyle”属性:可以在GridControl中设置“EmptyDataRowStyle”属性,以在表为空时显示指定的文本,如“没有可用数据”。

4. 使用“EmptyDataTemplate”属性:可以在GridControl中设置“EmptyDataTemplate”属性,以在表为空时显示指定的文本,如“没有可用数据”。

以上就是GridControl从表为空时如何显示的相关信息,希望能够帮助您解决问题。
参考技术A 您好,gridcontrol从表为空时,可以通过设置DataSource属性来显示空的表格。首先,您需要创建一个DataTable,并将其设置为gridcontrol的DataSource属性。然后,您需要将DataTable的Columns属性设置为您想要显示的列。最后,您可以将DataTable的Rows属性设置为空,这样就可以在gridcontrol中显示一个空的表格了。 参考技术B 您好,gridcontrol可以用来显示表格数据。当表格为空时,gridcontrol会显示一个空的表格,没有任何数据。可以通过设置gridcontrol的属性来控制表格的显示,比如设置表格的行高、列宽、字体大小等。此外,gridcontrol还可以设置表格的背景色、文字颜色等,以便更好地显示表格的内容。 参考技术C gridcontrol从表为空时如何显示在表格中导入数据时,有好多单元格都是“零”,导致非“零”单元格看不太清楚,客户要求将“零”值显示为空白中可以通过设置实现上述目的。如果单元格中设置了百分数、钱数等特殊格式,如DisplayFormat=“0:P”,就无法再附加别的格式了,最统一的办法是在GridControl的事件CustomColumnDisplayText中进行编码。 参考技术D gridcontrol从表为空时显示,</dxg:GridColumn.EditSettings> </dxg:GridColumn> 这样日期型就会默认显示为空字符 而不会显示默认的时间

仅当右表为空时,LEFT JOIN 才返回左表的第一行

【中文标题】仅当右表为空时,LEFT JOIN 才返回左表的第一行【英文标题】:LEFT JOIN returns 1st row from left table only if right table is empty 【发布时间】:2017-03-16 13:10:09 【问题描述】:

我有两个具有以下结构的表。

CREATE TABLE `countries` (
  `id` BIGINT UNSIGNED AUTO_INCREMENT,
  `title` VARCHAR (128) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE = InnoDB;

CREATE TABLE `cities` (
  `id` BIGINT UNSIGNED AUTO_INCREMENT,
  `country_id` BIGINT UNSIGNED NOT NULL,
  `title` VARCHAR (128) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`country_id`) REFERENCES `countries` (`id`) ON DELETE CASCADE
) ENGINE = InnoDB;

然后我在 countries 表中添加 3 行:

INSERT INTO `countries` VALUES
  (DEFAULT, 'India'),
  (DEFAULT, 'Pakistan'),
  (DEFAULT, 'Afghanistan');

现在,当我运行以下查询时:

SELECT c.title, COUNT(c2.id) AS cities
FROM countries AS c
  LEFT JOIN cities AS c2
    ON c2.country_id = c.id
GROUP BY c2.country_id;

我明白了:

++++++++++++++++++++++++
| title       | cities |
++++++++++++++++++++++++
| India       | 0      |
++++++++++++++++++++++++

我的期望是:

++++++++++++++++++++++++
| title       | cities |
++++++++++++++++++++++++
| India       | 0      |
| Pakistan    | 0      |
| Afghanistan | 0      |
++++++++++++++++++++++++

我不知道为什么查询只返回左表中的 1 行。有人可以帮忙吗?

【问题讨论】:

您需要使用Group by c.id。如果需要,我愿意给出解释。 @1000111 它有效 :) 您能否将其发布为解释性答案,以便我接受。 【参考方案1】:

既然您想要countries 表的所有条目的结果,而不管cities 表中的相应记录是否存在,那么LEFT JOIN 是正确的选择。

对于某些国家/地区,cities 表中的相应条目可能不存在。在这种情况下,您将获得NULL

由于cities 表中不存在任何条目,对于countries 表的所有行,您将获得NULL for c2.country_id

这里NULL 代表您的组。

如果除了 null 之外还有其他内容,那么您将获得超过 1 行。 但在您的情况下,您按NULL 分组。

看,c.id 在这些情况下不为空,如果您按c.id 分组,那么您的示例输入中将有三个不同的 id。因此,您将在结果集中获得三行。

SELECT c.title, COUNT(c2.id) AS cities
FROM countries AS c
  LEFT JOIN cities AS c2
    ON c2.country_id = c.id
GROUP BY c.id;

更多:

关于COUNT的一些微妙之处:

SELECT COUNT(0);   Result: 1

SELECT COUNT(-1);  Result: 1

SELECT COUNT(NULL); Result: 0

SELECT COUNT(71); Result: 1

SQL FIDDLE

【讨论】:

以上是关于gridcontrol从表为空时如何显示的主要内容,如果未能解决你的问题,请参考以下文章

仅当右表为空时,LEFT JOIN 才返回左表的第一行

带有寻呼机的表排序器 - 表为空时强制更新

ABAP的问题:表为空时,可以modify 吗

如果表为空,则插入多条记录

tableView为空时如何显示标签

当我的列表为空时,如何显示图像或文本?