에서, 인덱스를 나열하려면 다음을가 ExecuteReader는 값을 추가 안녕하세요 코드 다음 한 범위
SqlCeCommand commandArbeitstage= new SqlCeCommand("select count(IDStundensatz) as Gesamt from tblstunden Where IDPersonal = @IDPersonal Group by datepart(month, Datum) Order By datepart(month, Datum)", verbindung);
commandArbeitstage.Parameters.Add("IDPersonal", SqlDbType.Int);
commandArbeitstage.Parameters["@IDPersonal"].Value = IDPersonal;
SqlCeDataReader readerArbeitstage = commandArbeitstage.ExecuteReader();
List<Int32> Arbeitstage = new List<Int32>();
while (readerArbeitstage.Read())
{
Arbeitstage.Add(readerArbeitstage.GetInt32(0));
}
Arbeitstage.GetRange
textBox53.Text = Arbeitstage[0].ToString();
textBox60.Text = Arbeitstage[1].ToString();
textBox68.Text = Arbeitstage[2].ToString();
를 쿼리는 날짜 부분에 의해 테이블 주문을에서 일을 기대하고있다. 그래서 나는 한 열의 [Gesamt]와 12 개의 행을 가지고 있습니다. 근무일 수를 12 개의 텍스트 상자에 지정하고 싶습니다. 위의 내용을 1 월에서 3 월까지 수행했습니다.
내가 4 월 코드의 또 다른 라인을 추가하면
, textBox74.Text = Arbeitstage[3].ToString();
나는 범위 부족 예외를 얻을. 나는 4 월에 대한 기록이 없기 때문에 목록 Arbeitstage에있는 색인 [4]이 존재하지 않기 때문에 문제가 발생한다고 생각합니다. 그래서 textBox74.Text를 0으로 지정하고 싶습니다.
아무 생각 없습니까?
미리 감사드립니다.
또는 대신 꽤 중복이 후 DB에서 반환 된 값을 열거하여이 배열을 업데이트하고 마지막으로 배열에 저장된 값을 조건을 확인하지 않고 각각의 텍스트 상자에 할당합니다. – nullop
@nullop 아주 좋은 지적으로서, 나는 나의 대답을 업데이트했다. – Szymon
나는 첫 번째 및 두 번째 쿼리를 사용하여이를 시도했지만 배열은 행 수로 채워져 있습니다. 1 2 3 열 날짜의 값이 아닙니다. 예 : 3 1 2. – user3204119