实际上,我有一个查询,它返回我5列和值(日期)中的每一个或他们在一行中,但我想要的是列名应该在一个单独的列Title和它的(Vale)在第二列的Date。
注Title和Date是我刚刚创建的运行时临时表的列。
这是我正在使用的代码片段,
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"
}我已经花了一整天的时间来做这件事,请任何人都能帮助我。提前感谢
发布于 2013-05-22 20:09:11
我会给你一些解决方案的提示:
对于您的问题,您可以使用二维数组。
1
2
3.
4.
因此,首先循环遍历查询的五个值并填充到二维数组中
1
2
3.
4.
然后,您可以遍历输出的二维数组...
发布于 2013-05-22 20:25:23
你期待的是这样的东西吗?
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-2013https://stackoverflow.com/questions/16690974
复制相似问题