1

実際には、5 つの列とそれぞれの値 (日付) を 1 つの行に返すクエリがありますが、列名は 1 つの列Titleに、その (Vale) は の 2 番目の列にある必要があります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"

}

私はこれを行うためにすでに丸一日を費やしています。誰かが私を助けてください。前もって感謝します

4

2 に答える 2

0

解決策のヒントを提供し
ます。問題には、2 次元配列を使用できます。

[0][「タイトル」、データベース値]
[1][「日付」、データベース値]
[2][
[3][
[4][

したがって、最初にクエリの 5 つの値をループして、2 次元配列に入力します。

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

次に、出力用に2次元配列をループできます...

于 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 に答える