-2

我正在尝试在 gridview 中显示 4 行。如果我在数据库中有 2 行,我应该显示 2 个填充行和 2 个空行,如果我在数据库中有 4 个,则显示 4 个填充行,如果我在数据库中没有,则显示 4 个空行。这怎么可能?

我正在使用 C#、Asp.Net 使用 SQl Server 2005。我想使用存储过程使用数据集从数据库中获取结果,然后绑定到gridview。

我想知道逻辑,以便我可以尝试为自己编写代码。希望我很清楚,我希望我所问的是可能的?!

谢谢!

4

2 回答 2

0

在您的存储过程中,只需创建某种左连接或右连接,即可通过匹配公共列来生成空行。例如,考虑一下:

DECLARE @table AS TABLE
    (
      one VARCHAR(20) ,
      two VARCHAR(30) ,
      some_key INT
    )

INSERT  INTO @table
        ( one, two, some_key )
VALUES  ( 'a', 'b', 1 )

SELECT  t.one ,
        t.two ,
        t.some_key
FROM    @table t
        RIGHT JOIN ( SELECT 1 AS id
                     UNION
                     SELECT 2
                     UNION
                     SELECT 3
                     UNION
                     SELECT 4 AS id
                   ) x ON x.id = t.some_key

会产生

one    two  some_key
a      b    1
NULL   NULL NULL
NULL   NULL NULL
NULL   NULL NULL

然后,您可以将结果集绑定到您的 gridview。

于 2013-05-08T21:10:03.993 回答
0

我要解决的方法是使用 gridview 类的 CreateRow() 方法,如

gridView1.CreateRow(int rowIndex, 
                    int dataSourceIndex, 
                    DataControlRowType rowType, 
                    DataControlRowState rowState);

因此,使用标准for循环创建其中的四个,然后将所需的行附加到 gridview 中的相关行。就像 gridview.Row[i] = SelectedDataBaseRow 或其他东西一样,它会是一些东西(如果你正在使用数据表)

gridView1.SelectRow(i) = dataTable1.Row[i].ItemArray[columnindex].ToString();

希望这可以帮助。

于 2013-05-08T21:07:32.163 回答