0

次のようなSQL出力があります

TotalLeave    Status
----------    ------
    3        PaidLeave
    5        MedicalLave

この値をラベル コントロールに表示する必要があります。

lblMedicalLeave.text = 5
lblPaidLeave.text    = 3

このため、コードでデータセットのオブジェクトを次のように作成しました。

StaffAttendanceStatusTableAdapters.StaffTypesTableAdapter staffAttendanceStatus = 
                  new StaffAttendanceStatusTableAdapters.StaffTypesTableAdapter();
StaffAttendanceStatus.StaffTypesDataTable StaffDataTable = 
               staffAttendanceStatus.GetDataStaffAttendanceStatus(staff.StaffId);

        if (StaffDataTable[0] != null)
        {
            StaffAttendanceStatus.StaffTypesRow StaffRow = StaffDataTable[0];

            lblTotalMedicalLeave.Text = StaffRow.TotalLeave.ToString();
            lblTotalPaidLeave.Text = StaffRow.TotalLeave.ToString();
        }

同じ値を示しています(3)。対応する Status の TotalLeave 値を取得することは可能ですか? 誰でもここで私を助けることができますか

4

2 に答える 2

2

どちらも同じ行にアクセスしています。2 番目の行にアクセスするには、StaffDataTable[1]を使用します。とにかく、値にアクセスする前に結果があるかどうかを確認する必要があります!

using StaffAttendanceStatusTableAdapters;
....


StaffTypesTableAdapter staffAttendanceStatus = new StaffTypesTableAdapter();
StaffAttendanceStatus.StaffTypesDataTable StaffDataTable = 
           staffAttendanceStatus.GetDataStaffAttendanceStatus(staff.StaffId);

if (StaffDataTable != null && StaffDataTable.Count > 1)
{
    lblTotalMedicalLeave.Text = StaffDataTable[0].TotalLeave.ToString();
    lblTotalPaidLeave.Text = StaffDataTable[1].TotalLeave.ToString();
}

h番目

于 2012-05-21T05:57:12.143 に答える
1

2 つの行から TotalLeave を取得する必要があるため、2 つの行からデータをフェッチする必要があります。

if (StaffDataTable != null && StaffDataTable.Rows.Count > 1)
{
  StaffAttendanceStatus.StaffTypesRow StaffRow1 = StaffDataTable[0];
  StaffAttendanceStatus.StaffTypesRow StaffRow2 = StaffDataTable[1];

  lblTotalMedicalLeave.Text = StaffRow1.TotalLeave.ToString();
  lblTotalPaidLeave.Text = StaffRow2.TotalLeave.ToString();
}

PaidLeave と MedicalLave ステータスの順序がない場合は、row.Status を確認し、合計値を対応するラベルに割り当てます。

于 2012-05-21T05:14:58.153 に答える