DataGridview результат запроса 0

0

кто-нибудь знает, почему я выбрасываю ноль в результате в datagridview, в то время как весь мой код запроса правильный. Это мой код ниже..

boAPI4.Login login = new boAPI4.Login();
string cS = login.GetConnectionString();
DataAccess dA = new DataAccess(cS);
int userID = dA.getLpeID(login.GetBoUserNr());
PRAESENZZEIT q = new PRAESENZZEIT();
q.ZPZ_LPE_ID = userID;
if (db.State == ConnectionState.Closed)
    db.Open();
string query = "SELECT per.LPE_Nr, zei.ZPZ_LPE_ID, zei.ZPZ_Datum, SUM (zei.ZPZ_Std100) AS Stunden" +
               " FROM DB.dbo.Z_PRAESENZZEIT zei INNER JOIN DB.dbo.A_PERSONAL per ON zei.ZPZ_LPE_ID = per.LPE_ID" +
                $" WHERE zei.ZPZ_Datum BETWEEN '{dtFromDate.Value}' AND '{dtToDate.Value}' AND zei.ZPZ_LPE_ID='{userID.ToString()}' GROUP BY per.LPE_Nr, zei.ZPZ_LPE_ID, zei.ZPZ_Datum ORDER BY zei.ZPZ_Datum, per.LPE_Nr;";
pRAESENZZEITBindingSource.DataSource = db.Query<PRAESENZZEIT>(query, commandType: CommandType.Text);

и это тот же запрос, который должен быть записан в datagridview

  SELECT per.LPE_Nr, zei.ZPZ_LPE_ID, zei.ZPZ_Datum, SUM (zei.ZPZ_Std100) AS Stunden FROM DB.dbo.Z_PRAESENZZEIT zei INNER JOIN DB.dbo.A_PERSONAL per ON zei.ZPZ_LPE_ID = per.LPE_ID WHERE zei.ZPZ_Datum BETWEEN '16.12.2014 13:56:00' AND '18.12.2017 15:15:17'AND zei.ZPZ_LPE_ID='196' GROUP BY per.LPE_Nr, zei.ZPZ_LPE_ID, zei.ZPZ_Datum ORDER BY zei.ZPZ_Datum, per.LPE_Nr;

Изображение 174551

определение класса PRAESENZZEIT

 public class PRAESENZZEIT
{
    public int LPE_Nr { get; set; }
    public DateTime ZPZ_Datum { get; set; }
    public double ZPZ_Std100 { get; set; }
    public int ZPZ_LPE_ID { get; set; }

    public DateTime ZPZ_Von { get; set; }
    public DateTime ZPZ_Bis { get; set; }
    public DateTime ZPZ_Std { get; set; }

    public int ZPZ_ID { get; set; }
    public int ZPZ_Jahr { get; set; }
    public int ZPZ_Monat { get; set; }
    public int ZPZ_Tag { get; set; }
    public DateTime ZPZ_ERFDAT { get; set; }
    public string ZPZ_ERFUSER { get; set; }
    public DateTime ZPZ_MUTDAT { get; set; }
    public string ZPZ_MUTUSER { get; set; }
}
Теги:
datagridview

1 ответ

1
Лучший ответ

Не зная вашей системы, я могу только дать обоснованное предположение, но вы, вероятно, захотите изменить свой запрос:

SUM (zei.ZPZ_Std100) AS Stunden

к этому:

SUM (zei.ZPZ_Std100) AS ZPZ_Std100

Это связано с тем, что класс PRAESENZZEIT имеет свойство ZPZ_Std100 но не одно имя "Stunden".

Я ожидаю, что db.Query<PRAESENZZEIT> сделает отражение, чтобы сопоставить результирующий набор с именами свойств, поэтому вам нужны имена столбцов в соответствии с вашими именами свойств.

  • 0
    спасибо большое, это решение моей проблемы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню