Frage

Bitte schauen Sie sich den folgenden Code an:

using (OleDbConnection openCon = new OleDbConnection(ConfigurationManager.AppSettings["AccessConnectioString"]))
{
                openCon.Open();
                string tc = string.Empty;
                string ttc = string.Empty;
                if (!string.IsNullOrEmpty(QSetId))
                {
                    tc = "select count(*) as [Count] from ABC where QSetId = @qSetId and TText like 'RT*'";
                }
                else
                {
                    tc = "select count(*) as [Count] from PQR where TText like 'RT*'";
                }
                using (OleDbCommand qtc= new OleDbCommand(tc))
                {
                    qtc.Connection = openCon;
                    if (!string.IsNullOrEmpty(QSetId))
                        qtc.Parameters.Add("@qSetId", OleDbType.VarChar).Value = QSetId;
                    OleDbDataReader dr1 = qtc.ExecuteReader();
                    while (dr1.Read())
                    {
                        ttCnt = (int)dr1["Count"];
                    }
                }

                openCon.Close();
}

Ich erhalte immer die Zählung als 0 anstelle eines ganzzahligen Werts.Beim Debuggen nehme ich die Abfrage entgegen und führe sie in MS ACCESS 2013 aus.Sie liefert mir das korrekte Ergebnis.Ich verstehe nicht, worum es geht.

War es hilfreich?

Lösung

Sie werden durch den Unterschied in ÄHNLICHEN Platzhalterzeichen zwischen Abfragen, die in Access selbst ausgeführt werden, und Abfragen, die von einer externen Anwendung ausgeführt werden, gestolpert.

Wenn Sie eine Abfrage in Access selbst ausführen, müssen Sie das Sternchen als Platzhalterzeichen verwenden: LIKE 'RT*'.

Wenn Sie eine Abfrage von einer externen Anwendung (wie Ihrer C # -App) ausführen, müssen Sie das Prozentzeichen als Platzhalterzeichen verwenden: LIKE 'RT%'.

Andere Tipps

Versuchen Sie die generationspflichtige Methode

Ersetzen Sie dies:

generasacodicetagpre.

mit diesem:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top