Heim > Datenbank > MySQL-Tutorial > Wie übergebe ich eine Liste von Zeichenfolgen an eine gespeicherte SQL Server-Prozedur in C#?

Wie übergebe ich eine Liste von Zeichenfolgen an eine gespeicherte SQL Server-Prozedur in C#?

Susan Sarandon
Freigeben: 2025-01-13 10:21:43
Original
231 Leute haben es durchsucht

How to Pass a List of Strings to a SQL Server Stored Procedure in C#?

Übergabe einer Liste von Zeichenfolgen an eine gespeicherte SQL Server-Prozedur von C#

Diese Anleitung zeigt, wie Sie eine Liste von Zeichenfolgen als Parameter aus Ihrer C#-Anwendung an eine gespeicherte SQL Server-Prozedur übergeben. Diese Methode verwendet einen benutzerdefinierten Tabellentyp (UDTT), der für SQL Server 2008 und spätere Versionen geeignet ist.

Definieren des benutzerdefinierten Tabellentyps (UDTT)

Erstellen Sie zunächst eine UDTT in SQL Server, um Ihre String-Liste darzustellen:

<code class="language-sql">CREATE TYPE [dbo].[StringList] AS TABLE(
    [Item] [NVARCHAR](MAX) NULL
);</code>
Nach dem Login kopieren

Ändern der gespeicherten Prozedur

Als nächstes ändern Sie Ihre gespeicherte Prozedur, um die UDTT als Eingabe zu akzeptieren:

<code class="language-sql">CREATE PROCEDURE [dbo].[sp_UseStringList]
    @list StringList READONLY
AS
BEGIN
    -- Process the string list
    SELECT l.Item FROM @list l;
END</code>
Nach dem Login kopieren

C#-Implementierung

So verwenden Sie UDTT in Ihrem C#-Code:

<code class="language-csharp">using (SqlConnection con = new SqlConnection(connstring))
{
    con.Open();

    using (SqlCommand cmd = new SqlCommand("sp_UseStringList", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@list", CreateStringListTable(new List<string> { "Apple", "Banana", "Orange" }));

        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                // Process each string from the reader
                string item = reader["Item"].ToString();
                Console.WriteLine(item);
            }
        }
    }
}


//Helper function to create the DataTable
private DataTable CreateStringListTable(List<string> stringList)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("Item", typeof(string));
    foreach (string str in stringList)
    {
        dt.Rows.Add(str);
    }
    return dt;
}</code>
Nach dem Login kopieren

Ausführen der gespeicherten Prozedur (SQL-Beispiel)

Zu Testzwecken können Sie die gespeicherte Prozedur wie folgt direkt in SQL Server Management Studio (SSMS) ausführen:

<code class="language-sql">DECLARE @list AS StringList;

INSERT INTO @list VALUES ('Apple');
INSERT INTO @list VALUES ('Banana');
INSERT INTO @list VALUES ('Orange');

EXEC sp_UseStringList @list;</code>
Nach dem Login kopieren

Dieser Ansatz bietet eine robuste und effiziente Möglichkeit, Listen von Zeichenfolgen zu verarbeiten, wenn Sie mit gespeicherten SQL Server-Prozeduren Ihrer C#-Anwendungen interagieren. Die Verwendung eines UDTT gewährleistet die Datenintegrität und verbessert die Leistung im Vergleich zu anderen Methoden.

Das obige ist der detaillierte Inhalt vonWie übergebe ich eine Liste von Zeichenfolgen an eine gespeicherte SQL Server-Prozedur in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage