1

实际上我有一个查询,它在一行中为每个或它们返回 5 个列和值(日期),但我想要的是列名应该在一个列中Title,并且它的(Vale)在Date.

注意TitleDate是我刚刚创建运行时的临时表的列。

这是我正在使用的一段代码,

protected void btnAlerts_Click(object sender, EventArgs e)
{
       fnSaveAlerts();
}

private void fnSaveAlerts()
{
    DataTable dtTemp = new DataTable();

    DataColumn dtC1 = new DataColumn();
    dtC1.DataType = typeof(String);
    dtC1.ColumnName = "Title";

    DataColumn dtc2 = new DataColumn();
    dtc2.DataType = typeof(DateTime);
    dtC1.ColumnName = "Date";

    dtTemp.Columns.Add(dtC1);
    dtTemp.Columns.Add(dtc2);

    LeadsContracts ObjLeadsContract = new LeadsContracts();

    ObjLeadsContract.ExecuteSql(@"select dtDisclosure, dtDueDiligence, 
                                         dtFinanceAppraisals, dtFreeTextDate1, 
                                         dtFreeTextDate2 
                                  from LeadsContracts 
                                  where dtDisclosure is not null 
                                    and dtDueDiligence is not null 
                                    and dtFinanceAppraisals is not null 
                                    and dtFreeTextDate1 is not null 
                                    and dtFreeTextDate2 is not null");

    dtTemp.DataSet = ObjLeadsContract.DefaultView;  // it also gives error here "Red line"

}

我已经花了一整天的时间来做这件事,请任何人都可以帮助我。提前致谢

4

2 回答 2

0

我将为您提供解决方案的提示:
对于您的问题,您可以使用二维数组。

[0][“标题”,数据库值]
[1][“日期”,数据库值]
[2][
[3][
[4][

因此,首先循环查询的五个值并填充到二维数组中

[0][1]
[1][1]
[2][1]
[3][1]
[4][1]

然后你可以循环输出二维数组......

于 2013-05-22T12:09:10.847 回答
0

你期待这样的事情吗?

DECLARE @Temp AS TABLE (dtDisclosure varchar(20),dtDueDiligence varchar(20),dtFinanceAppraisals varchar(20),dtFreeTextDate1 varchar(20),dtFreeTextDate2 varchar(20))
INSERT INTO @Temp VALUES ('20-Apr-2013','20-Apr-2013','20-Apr-2013','20-Apr-2013','20-Apr-2013'),
                        ('21-Apr-2013','21-Apr-2013','21-Apr-2013','21-Apr-2013','21-Apr-2013')

SELECT [Title],[Date] FROM
(
   SELECT * FROM @temp
} A
UNPIVOT
{
    [Date] FOR [Title] IN     IN ([dtDisclosure],[dtDueDiligence],[dtFinanceAppraisals],[dtFreeTextDate1],[dtFreeTextDate2])
} AS Unpvt;

输出 :

Title                 Date
dtDisclosure          20-Apr-2013
dtDueDiligence        20-Apr-2013
dtFinanceAppraisals   20-Apr-2013
dtFreeTextDate1       20-Apr-2013
dtFreeTextDate2       20-Apr-2013
dtDisclosure          21-Apr-2013
dtDueDiligence        21-Apr-2013
dtFinanceAppraisals   21-Apr-2013
dtFreeTextDate1       21-Apr-2013
dtFreeTextDate2       21-Apr-2013
于 2013-05-22T12:25:22.977 回答