是否可以在不循环的情况下批量更新c#数据表中的多个列?
我的数据表包含太多行并且循环并且每行更新需要一段时间才能完成。
答案 0 :(得分:-3)
您可以在数据库中创建一个新的 DataType ,它可以 保持整个表格 ,就像在C#或VB中的DataTable一样。并将整个表格一次性传递给sp。
创建新数据类型的脚本
CREATE TYPE EmpType AS TABLE (
ID INT,Name VARCHAR(3000),
地址VARCHAR(8000),
操作SMALLINT
)
在您的sp中接收它并插入您的实际表格
ALTER PROCEDURE spEmpDetails
@Details EmpType READONLY
as
INSERT INTO EmployeeDetails(ID,Name,Address)
SELECT ID,Name,Address FROM @Details WHERE Operation = 0;
如何在c#代码中调用该sp
SqlCommand cmdProc = new SqlCommand("spEmpDetails", con);
cmdProc.CommandType = CommandType.StoredProcedure;
cmdProc.Parameters.AddWithValue("@Details", dtDetails);
cmdProc.ExecuteNonQuery();