SqlQuery Abfrage prüfen...

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    SqlQuery Abfrage prüfen...

    Hallo Leute, und danke fürs Reinschauen...

    Ich möchte eigenes SqlQuery erstellen mit dem Ziel meine SQL-Abfragen zu protokollieren, insbesondere dann, wenn diese nicht funktioniert haben...

    Bis Dato habe ich das:

    C#-Quellcode

    1. public static DbRawSqlQuery<TElement> wmSqlQuery<TElement>(this Database database, string sql, params object[] parameters)
    2. {
    3. try
    4. {
    5. var tmpTimer = new Stopwatch();
    6. tmpTimer.Start();
    7. DbRawSqlQuery<TElement> result;
    8. var isError = false;
    9. try
    10. {
    11. result = database.SqlQuery<TElement>(sql);
    12. //result.FirstOrDefault();//<----------------------Damit klappt es... Dauert Ewigkeit!
    13. }
    14. catch (Exception e)
    15. {
    16. tmpTimer.Stop();
    17. using (var tmpCon = new wmSysEntities())
    18. tmpCon.Database.ExecuteSqlCommand("INSERT INTO [wmSys].[tSqlProto] VALUES (CURRENT_TIMESTAMP, {0}, {1}, -1, {2})", tmpTimer.Elapsed.TotalMilliseconds, sql, e.Message);
    19. result = default(DbRawSqlQuery<TElement>);
    20. isError = true;
    21. }
    22. if (!isError)
    23. {
    24. tmpTimer.Stop();
    25. using (var tmpCon = new wmSysEntities())
    26. tmpCon.Database.ExecuteSqlCommand("INSERT INTO [wmSys].[tSqlProto] VALUES (CURRENT_TIMESTAMP, {0}, {1}, 0, '')", tmpTimer.Elapsed.TotalMilliseconds, sql);
    27. }
    28. return result;
    29. }
    30. catch (Exception ex)
    31. {
    32. wm00_GlobalHelper.ShowError(ex);
    33. return default(DbRawSqlQuery<TElement>);
    34. }
    35. }


    Wenn ich result.FirstOrDefault() aufrufe, dann kommt es so wie ich haben möchte. Dennoch ist es ein unnötiger Aufruf der eine Ewigkeit dauert... Ich wollte eigentlich irgend wie auf Exception von result drauf kommen, ob die Abfrage geklappt hat...

    Hat einer eine gute Idee? Vielen Dank im Voraus.