C# SQL Server:將清單傳遞給預存程序
在 C# 中,可以透過程式碼呼叫 SQL Server 預存程序。然而,傳遞字串列表並不簡單。本文探討了使用使用者定義表格類型 (UDT) 的替代方法。
建立使用者定義表格類型(UDT)
SQL Server 2008 引進了UDT ,它提供了一種將複雜資料類型傳遞給預存程序的結構化方法。若要為字串清單建立UDT:
CREATE TYPE [dbo].[StringList] AS TABLE( [Item] [NVARCHAR](MAX) NULL );
修改預存程序
要接受UDT 參數,需要如下修改預存程序:
CREATE PROCEDURE [dbo].[sp_UseStringList] @list StringList READONLY AS BEGIN -- Just return the items we passed in SELECT l.Item FROM @list l; END
從C#傳遞清單代碼
最後,這是如何從C# 程式碼傳遞清單:
using System.Data; var con = new SqlConnection(connstring); con.Open(); using (SqlCommand cmd = new SqlCommand("exec sp_UseStringList @list", con)) { using (var table = new DataTable()) { table.Columns.Add("Item", typeof(string)); for (int i = 0; i < 10; i++) table.Rows.Add("Item " + i.ToString()); var pList = new SqlParameter("@list", SqlDbType.Structured); pList.TypeName = "dbo.StringList"; pList.Value = table; cmd.Parameters.Add(pList); using (var dr = cmd.ExecuteReader()) { while (dr.Read()) Console.WriteLine(dr["Item"].ToString()); } } }
結論
使用UDT 是一種有效的方法將字串清單從C# 程式碼傳遞到SQL Server 預存程序的方法。透過遵循上述步驟,開發人員可以在資料庫互動中輕鬆處理動態和大型字串清單。
以上是如何有效地將字串清單從 C# 傳遞到 SQL Server 預存程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!