• 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
                }
    
            }
  • 相关阅读:
    跨域调用webapi web端跨域调用webapi
    如何通过js跨域调用ASP.NET Web API (请问如何实现在javascript中通过http get的方式跨域调用ASP.NET Web API?)
    MVC中使用SignaIR入门教程
    Axure RP是一个专业的快速原型设计工具
    angularJS 学习演示
    说说Angular中的$timeOut定时器
    镜像服务器文件实时监控同步程序
    服务器文件同步管理
    MySQL 数据库双向镜像、循环镜像(复制)
    vs2015密钥 企业版 专业版 (vs.net)
  • 原文地址:https://www.cnblogs.com/FH-cnblogs/p/6207749.html
Copyright © 2020-2023  润新知