Heim >Datenbank >MySQL-Tutorial >Wie übergebe ich Tabellenwertparameter von ADO.NET an gespeicherte SQL Server-Prozeduren?

Wie übergebe ich Tabellenwertparameter von ADO.NET an gespeicherte SQL Server-Prozeduren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-11 06:28:42736Durchsuche

How to Pass Table-Valued Parameters from ADO.NET to SQL Server Stored Procedures?

Verwenden von ADO.NET zum Übergeben von Tabellenwertparametern an gespeicherte SQL Server-Prozeduren

Diese Anleitung zeigt, wie Sie strukturierte Daten wie Tabellen oder Arrays mithilfe der Tabellenwertparameter von ADO.NET an gespeicherte SQL Server-Prozeduren übertragen. Befolgen Sie diese Schritte:

  1. Definieren Sie einen benutzerdefinierten SQL Server-Tabellentyp: Verwenden Sie die CREATE TYPE-Anweisung, um Ihre Tabellenwertdaten zu strukturieren. Zum Beispiel:
<code class="language-sql">CREATE TYPE [dbo].[MyDataType] AS TABLE
(
    ID INT,
    Name NVARCHAR(50)
)</code>
  1. Erstellen Sie die gespeicherte Prozedur: Deklarieren Sie den Tabellenwertparameter als schreibgeschützten Eingabeparameter in Ihrer gespeicherten Prozedur. Beispiel:
<code class="language-sql">CREATE PROCEDURE [dbo].[MyProcedure]
(
    @myData [dbo].[MyDataType] READONLY
)
AS
BEGIN
    SELECT * FROM @myData
END</code>
  1. Füllen Sie eine Datentabelle in C#: Erstellen Sie ein DataTable in Ihrem C#-Code und füllen Sie es mit den Daten, die Sie übergeben möchten.
<code class="language-csharp">DataTable myDataTable = new DataTable("MyDataType");
myDataTable.Columns.Add("Name", typeof(string));
myDataTable.Columns.Add("Id", typeof(Int32));
myDataTable.Rows.Add("XYZ", 1);
myDataTable.Rows.Add("ABC", 2);</code>
  1. Erstellen und fügen Sie den SQL-Parameter hinzu: Erstellen Sie ein SqlParameter-Objekt und legen Sie seine Eigenschaften fest:
  • ParameterName: Muss mit dem Parameternamen der gespeicherten Prozedur übereinstimmen.
  • SqlDbType: Auf Structured setzen.
  • Value: Weisen Sie DataTable als Wert zu.

Fügen Sie diesen Parameter zu Ihrem Befehlsobjekt hinzu:

<code class="language-csharp">SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@myData";
parameter.SqlDbType = System.Data.SqlDbType.Structured;
parameter.Value = myDataTable;
command.Parameters.Add(parameter);</code>

Indem Sie diese Schritte befolgen, können Sie Tabellenwertparameter effizient von Ihrer ADO.NET-Anwendung an gespeicherte SQL Server-Prozeduren übergeben.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Tabellenwertparameter von ADO.NET an gespeicherte SQL Server-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn