我想运行我的更新存储过程来更新表中的两列(该表还有许多其他列)。
目前我已经实现如下 -
foreach (Object obj in customCollection)
{
string[] updatedValues = GetUpdatedValues(obj.Property1);
using (SqlConnection sqlConnection = new SqlConnection(connString))
{
sqlConnection.Open();
SqlParameter[] sqlParams = new SqlParameter[2];
sqlParams[0] = new SqlParameter("@column1", SqlDbType.Float) { Value = updatedValues[0]};
sqlParams[1] = new SqlParameter("@column2", SqlDbType.Float) { Value = updatedValues[1] };
using (SqlCommand command = new SqlCommand("upUpdateProcedure", sqlConnection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(sqlParams);
DatabaseHelper.ExecuteNonQuery(command);
}
}
}
因此,如您所见,上面的代码正在为集合中的每个对象调用数据库。
我浏览了一些“从 C# 到 SQL Server 的批量更新”的链接,但是这些链接中的大多数都建议在 C# 代码中加载表,更新表行,然后调用 DataAdapter.Update()。
但是,只是想知道是否有任何其他已知方法可以不同地处理这种情况 - 我的意思是我不想将整个表加载到内存中,因为它还有许多其他列数据。
请指导。