zoukankan      html  css  js  c++  java
  • 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
                }
    
            }
  • 相关阅读:
    关于each()、find()、filter()遍历节点的操作方法
    Jquery中的事件与动画
    JavaScript对象
    jquery选择器
    2018-8-16JWTtoken用户登录认证思路分析9502751
    2018-8-10爬虫第四天内容
    JWTtoken的原理以及在django中的应用
    rest_framework中视图相关
    Django REST framework 中的序列化器
    Django REST framework API开发
  • 原文地址:https://www.cnblogs.com/FH-cnblogs/p/6207749.html
Copyright © 2011-2022 走看看