zoukankan      html  css  js  c++  java
  • 将List中所有tableInfo数据提交到数据库中

    public static bool TableSubmit(List<tableInfo> tableList)
            {
                bool bolResult = false;
                using (SQLiteConnection connection = new SQLiteConnection(DbHelperSQL.connectionString))
                {
                    if (connection.State == ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    using (SQLiteTransaction trans = connection.BeginTransaction(IsolationLevel.ReadCommitted))
                    {
                        try
                        {
                             SQLiteDataAdapter adpAdapter;
                             SQLiteCommand command ;
                             SQLiteCommandBuilder commandBuilder;
                             foreach (tableInfo table in tableList)
                             {
                                 //获取表信息
                                 command = new SQLiteCommand() { CommandText = string.Format("SELECT {0} FROM {1}", getTableColumn(table.dtTable), table.sName) };
                                 command.Connection = connection;
                                 command.Transaction = trans;
                                 //创建commandBuilder
                                 adpAdapter = new SQLiteDataAdapter(command);
                                 commandBuilder = new SQLiteCommandBuilder(adpAdapter);
                                 //设置增删改SQLCommand
                                 adpAdapter.InsertCommand = commandBuilder.GetInsertCommand();
                                 adpAdapter.DeleteCommand = commandBuilder.GetDeleteCommand();
                                 adpAdapter.UpdateCommand = commandBuilder.GetUpdateCommand();
                                 //设置事务提交数据
                                 adpAdapter.InsertCommand.Transaction = trans;
                                 adpAdapter.UpdateCommand.Transaction = trans;
                                 adpAdapter.DeleteCommand.Transaction = trans;
                                 //尝试提交数据
                                 adpAdapter.Update(table.dtTable);
                             }
                            trans.Commit();//提交数据
                            bolResult = true;
                        }
                        catch (Exception ex)
                        {
                            trans.Rollback();//回滚数据
                        }
                        finally
                        {
                            //释放资源
                            trans.Dispose();
                            connection.Close();
                            connection.Dispose();
                        }
                    }
                }
                return bolResult;
            }       

    public struct tableInfo
        {
            public readonly string sName;   //表名
            public readonly DataTable dtTable; //数据

            public tableInfo(string Name,DataTable Table)
            {
                this.sName = Name;         
                this.dtTable = Table;
            }

  • 相关阅读:
    【记录】JS正则表达式(学习笔记2)现学现卖还帮美女解决了个问题。
    【分享】封装获取dom元素那些讨厌的位置
    【记录】简单去除数组重复项
    【记录】JS 预加载图片
    【分享】详解js函数调用的4中方法!
    【记录】JavaScript版 快速排序,还请高手指教。
    【分享】封装window.showModalDialog让他更好用(弹出窗口)
    【记录】正则表达式学习第3天(正则学习笔记),又解决了个实际问题。
    【分享】LazyLoad延迟加载(按需加载)
    PPT幻灯片放映不显示备注,只让备注显示在自己屏幕上
  • 原文地址:https://www.cnblogs.com/nicvscs/p/3115461.html
Copyright © 2011-2022 走看看