使用 C# 将参数化变量批量插入数据库
高效地将大量参数化变量插入数据库是开发人员面临的常见挑战。 C# 提供了一种使用表值参数和存储过程在单个查询中插入多行的解决方案。
创建用户定义的表类型
首先创建一个镜像目标数据库结构的用户定义表类型表:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO
定义存储过程
接下来,创建一个存储过程,接受新创建的表类型作为输入参数:
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly! ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO
该存储过程会将 @MyTable 表类型中的数据插入到 MyTable 表中
从 C# 执行存储过程
最后,使用以下代码从 C# 执行存储过程:
DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Fill your data table here using (var con = new SqlConnection("ConnectionString")) { using(var cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt; con.Open(); cmd.ExecuteNonQuery(); } }
使用表值的优点参数
使用表值参数有几个优点:
以上是C# 如何高效地将参数化数据批量插入数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!