So zeigen Sie den Wert an, der mit der SQL-Abfrage im Meldungsfeld gedruckt wird

8

Ich möchte einen Wert drucken, der von SQL Server zurückgegeben wird.

%Vor%

Diese Abfrage gibt entweder die Anzahl der betroffenen Zeilen oder Duplizieren

zurück

Ich möchte dieses Duplikat in C # in MessageBox.Show()

verwenden %Vor%

Ich kann nicht dr dafür verwenden. Bitte helfen Sie mir, Duplikate hier zu drucken

MessageBox.Show (dr);

Was muss ich hier tun?

    
Shantanu Gupta 08.01.2010, 12:17
quelle

2 Antworten

1

Unter Verwendung von ADO.NET gibt es vier Optionen zum Zurückgeben von Informationen aus einer SQL-Abfrage:

  • Verwenden Sie ein DataSet-Objekt, um die zurückgegebenen Zeilen zu sammeln und mit diesen Zeilen zusätzlich zu den Rückgabewerten und den Rückgabeparametern zu arbeiten.
  • Verwenden Sie ein DataReader-Objekt, um die zurückgegebenen Zeilen zu sammeln, sich durch diese Zeilen zu bewegen und Rückgabewerte und Rückgabewerte zu sammeln.
  • Verwenden Sie die ExecuteScalar-Methode, um den Wert aus der ersten Spalte der ersten Zeile des Ergebnisses mit den Rückgabewerten und den Rückgabeparametern zurückzugeben. Dies ist besonders nützlich bei Aggregatfunktionen.
  • Verwenden Sie die ExecuteNonQuery-Methode, um nur die Rückgabeparameter und die Rückgabewerte zurückzugeben. Alle zurückgegebenen Zeilen werden verworfen. Dies ist am nützlichsten für die Ausführung von Aktionsabfragen.

Dies sind alle Methoden, die von Ihrem Befehlsobjekt aufgerufen werden.

Es gibt viele verschiedene Möglichkeiten, eine Katze zu häuten, Sie können Ausgabeparameter verwenden, Sie können ExecuteScalar verwenden, Sie können Rückgabewerte verwenden oder Sie können Dummy-Recordsets verwenden.

Sie sollten in der Lage sein, Folgendes in Ihrem C # zu erhalten, um den Rückgabewert einer Abfrage zu erhalten:

%Vor%

Der Code über dem fängt den Rückgabewert ein, den Sie nach Belieben einstellen können, vielleicht mit einer 0 für exists und einer 1 für exists.

%Vor%

Es gibt jedoch einen kleinen Vorbehalt mit dem obigen Hinweis - ich verwende normalerweise entweder ein ORM wie Linq-to-SQL oder NHibernate oder ich verwende Stored Procedures. Ich finde Inline-SQL ziemlich umständlich. Also, während meine Antwort im Allgemeinen solide sein sollte, werden Sie wahrscheinlich einige Details durcharbeiten müssen, damit es genau so funktioniert, wie Sie es brauchen.

    
David Hall 08.01.2010, 12:30
quelle
7

ein paar Jahre zu spät, aber Sie sollten Print / Info Text (wie ursprünglich gefragt) abrufen können, indem Sie einen Eventhandler an die InfoMessage-Ereignis für das SqlConnection-Objekt -

Aber tun Sie das nur, wenn Sie nicht (aus irgendeinem Grund) die in diesem Thread erwähnten Alternativen verwenden können.

%Vor%     
cstruter 01.02.2012 08:49
quelle