SqlDataAdapter 批量更新 DataTable
/// <summary> /// 统计接口调用次数 /// </summary> public void UpdateInterfaceClickCount() { DataRow[] arrRows = updateTable.Select(string.Format("name='{0}'", InterfaceName)); if (arrRows.Length > 0) { DataRow row = arrRows[0]; row.BeginEdit(); row["click_count"] = (int)row["click_count"] + 1; row.EndEdit(); } else { DataRow dr = updateTable.NewRow(); dr["name"] = InterfaceName; dr["click_count"] = 1; dr["version"] = appversion; updateTable.Rows.Add(dr); } if (updateTable.Rows.Count < 2) return; new InterfaceCallDal().BatchUpdate(updateTable, updateTable.Rows.Count); updateTable.Clear(); }
/// <summary> /// 批量更新 /// </summary> /// <param name="dataTable"></param> /// <param name="batchSize">获取或设置一个值,该值启用或禁用批处理支持,并指定可以批处理执行的命令的数目。</param> public void BatchUpdate(DataTable dataTable, Int32 batchSize) { try { dataTable.AcceptChanges(); foreach (DataRow row in dataTable.Rows) { row.SetModified(); } // Assumes GetConnectionString() returns a valid connection string. string connectionString = ConfigHelper.SQLConnection; // Connect to the AdventureWorks database. using (var connection = new SqlConnection(connectionString)) { // Create a SqlDataAdapter. var adapter = new SqlDataAdapter { UpdateCommand = new SqlCommand("update test_table SET click_count=click_count+@click_count WHERE name=@name and version=@version and app_type='app' ", connection) }; // Set the UPDATE command and parameters. adapter.UpdateCommand.Parameters.Add("@click_count", SqlDbType.Int, 4, "click_count"); adapter.UpdateCommand.Parameters.Add("@name", SqlDbType.VarChar, 128, "name"); adapter.UpdateCommand.Parameters.Add("@version", SqlDbType.VarChar, 10, "version"); //adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None; // Set the batch size. //adapter.UpdateBatchSize = 0; // Execute the update. adapter.Update(dataTable); } } catch { //ingore } }
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C23和C++26的#embed嵌入资源指南
· 「EF Core」框架是如何识别实体类的属性和主键的
· 独立开发,这条路可行吗?
· 我在厂里搞 wine 的日子
· 如何通过向量化技术比较两段文本是否相似?
· 他没买 iPad,而是花了半年时间,为所有“穷学生”写了个笔记神器
· Visual Studio 现已支持新的、更简洁的解决方案文件(slnx)格式
· 只需一行命令,Win11秒变Linux开发主机!
· 上周热点回顾(7.7-7.13)
· 也是出息了,业务代码里面也用上算法了。