Ich muss wissen, wie man einen einzelnen Datensatz von einer SQL-Server-2012-Datentabelle mit C# Datenreader und einer gespeicherten Prozedur aktualisiert. Ich habe bereits eine gespeicherte Prozedur, die es mir ermöglicht, einen einzelnen Datensatz in meiner Datentabelle zu aktualisieren. Ich kann einfach nicht herausfinden, wie man einen C# Datenleser verwendet, um einen Datensatz in der Datentabelle zu aktualisieren. Wenn ich zum Beispiel sage, dass ich eine Studentin in einer College-Klasse habe, die ich unterrichte, und sie heiratet, müsste ich ihren Datensatz aus meiner Studenteninformationsdatei auswählen und ihren Nachnamen in ihren neuen Ehenamen ändern. Vielen Dank im Voraus für Ihre Hilfe.Wie aktualisiere ich einen einzelnen Datensatz von einem spl Server 2012 Datatable mit einem C# Datenleser und einer gespeicherten Prozedur?
Antwort
Ein DataReader
ist nicht verbunden, schreibgeschützt. Aus diesem Grund gibt es keine Methoden zum Aktualisieren seiner Werte.
Sie haben angegeben, dass Sie eine gespeicherte Prozedur zum Aktualisieren haben. Um das auszuführen, würden Sie SqlConnection
und SqlCommand
erstellen und Parameter hinzufügen, genau wie beim Ausführen des Befehls, der SqlDataReader
generiert. Aber anstatt ExecuteReader()
aufzurufen, würden Sie normalerweise ExecuteNonQuery()
anrufen. Dies wird zum Ausführen einer Abfrage verwendet, die keine Ergebnisse zurückgibt. Es gibt die Anzahl der aktualisierten Zeilen zurück.
Ich werde es versuchen. Danke für den Tipp Herr Hannen. Sehr geschätzt. – Anthony
Sie müssen DataReader nicht zum Aktualisieren eines Datensatzes in SQL Server verwenden. Daher gespeicherte Prozedur, die Sie gerade einen Parameter in der gespeicherten Prozedur deklarieren haben und einen Wert zu diesem Parameter in C# passieren etwa so:
CREATE PROCEDURE [dbo].[StoredProcedureName]
@SOMEPARAMETER AS VARCHAR(50)
AS
BEGIN
UPDATE tableName
SET ColumnFromTable = @SOMEPARAMETER
WHERE !--YourConditionGoesHere
END
GO
Und in C#, um die Parameter zu übergeben tun es wie folgt aus:
using(SqlConnection con = new SqlConnection("connectionSTringHere")
{
SqlCommand cmd = new SqlCommand("StoredProcedureName",con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@SOMEPARAMETER",SqlDbType.VarChar).Value = "SomeValue";
cmd.ExecuteNonQuery();
}
Danke für das Beispiel und die ausführliche Erklärung Herr Borlagdan. Ich werde dein Beispiel als Anfang verwenden und sehen, wo es mich hinführt. – Anthony
und nur für eine Verknüpfung, die Sie nicht im Internet finden würden. Wenn Sie SQL Server 2008 und höher verwenden, können Sie zum Objekt-Explorer gehen - dropdown Ihre Datenbank - gehen Sie zu Programmfähigkeiten mit der rechten Maustaste auf StoredProcedures Ordner und klicken Sie auf Neu Drücken Sie dann einfach STRG + UMSCHALTTASTE: D –
- 1. Wie Prozedur eine Datentabelle von einer gespeicherten
- 2. Linq to SQL: Wie aktualisiere ich Daten mit gespeicherten Prozedur
- 3. DataTable mit einem Byte [] Feld als Parameter zu einer gespeicherten Prozedur
- 4. Asynchroner Aufruf einer SQL Server gespeicherten Prozedur in C#
- 5. Wie erhalte ich in SQL Server 2012 den Spaltennamen und den Datentyp aus einer Ansicht, Funktion oder gespeicherten Prozedur?
- 6. Aufruf einer gespeicherten Prozedur mit einem anderen in Oracle
- 7. einen Cursor aus einer gespeicherten Prozedur zurückkehrend
- 8. Suchen einer gespeicherten Prozedur
- 9. LEFT JOIN Beitritt nicht mit einem einzelnen Datensatz
- 10. Wie verwende ich einen Wert aus einer gespeicherten Prozedur in einem anderen?
- 11. Einfügen in Tabellenwerte aus einer einzelnen gespeicherten SQL-Prozedur
- 12. Wie man in einem temptable aus einer gespeicherten Prozedur
- 13. C# DataTable in SQL Server gespeicherte Prozedur
- 14. Wie erstelle ich einen Index in einer gespeicherten Prozedur?
- 15. Wie starten Sie SQL Server-Auftrag von einer gespeicherten Prozedur?
- 16. Wie aktualisiere ich mit einem Join und einer Gruppe nach?
- 17. Zurückgeben einer Nachricht aus einer gespeicherten Prozedur an C# app
- 18. Wie aktualisiere ich einen Datensatz in einer Textdatei?
- 19. Wie unterdrücke ich die Ergebnisse einer gespeicherten Prozedur aus einer gespeicherten Prozedur?
- 20. MSSQL Server 2012 und erweiterte gespeicherte Prozedur von einer C++ - DLL
- 21. Exit von einer gespeicherten Prozedur
- 22. Wie zwei Strings mit einem If in einer gespeicherten Prozedur in SQL Server 2008 vergleichen?
- 23. SQL Server, mit Funktionen in gespeicherten Prozedur
- 24. Ausführen einer gespeicherten Prozedur innerhalb einer gespeicherten Prozedur
- 25. Extract Parameter und ihre Werte von einem Inline-SQL-Aufruf der gespeicherten Prozedur mit C#
- 26. Wie suche ich nach einem Datensatz in einem Array und aktualisiere dann den Saldo?
- 27. Auftrag von einer gespeicherten Prozedur
- 28. Aktualisierung der gespeicherten Prozedur nicht C# und SQL Server
- 29. Ausführen von 'View' auf einem Remote-Server von einer gespeicherten Prozedur
- 30. einen Datensatz mit einem Datagrid
Warum sagen Sie ausdrücklich, dass Sie einen Datenreader verwenden müssen? – Crowcoder
. Net Datenleser Klasse - wie der Name schon sagt - ist zum Lesen von Daten, nicht zu aktualisieren. Es ist also kein Wunder, dass Sie nicht herausfinden konnten, wie Sie damit Daten aktualisieren können. Siehe https://msdn.microsoft.com/en-us/library/ms254931(v=vs.110).aspx – Shadow