예제 #1
0
        public async Task <string> ExecSqlAsync(List <ParamSql> lst)
        {
            string result;

            try
            {
                using (this.conn = new SQLiteConnection(this._connectionString))
                {
                    bool flag = this.conn.State != ConnectionState.Open;
                    if (flag)
                    {
                        await this.conn.OpenAsync();
                    }
                    SQLiteTransaction sqliteTransaction = this.conn.BeginTransaction();
                    try
                    {
                        this.cmd = new SQLiteCommand
                        {
                            CommandType = CommandType.Text,
                            Connection  = this.conn,
                            Transaction = sqliteTransaction
                        };
                        foreach (ParamSql paramSql in lst)
                        {
                            this.cmd.CommandText = paramSql.Sql;
                            foreach (SqlHelperParameter sqlHelperParameter in paramSql.Params)
                            {
                                this.cmd.Parameters.Add(this.GetParameter(sqlHelperParameter));
                            }
                            await this.cmd.ExecuteNonQueryAsync();
                        }
                        await sqliteTransaction.CommitAsync();

                        result = string.Empty;
                    }
                    catch (Exception ex)
                    {
                        await sqliteTransaction.RollbackAsync();

                        result = ex.Message;
                    }
                    finally
                    {
                        await sqliteTransaction.DisposeAsync();

                        await this.cmd.DisposeAsync();

                        await this.conn.CloseAsync();
                    }
                }
            }
            catch (Exception ex2)
            {
                result = ex2.Message;
            }
            return(result);
        }
예제 #2
0
 /// <summary>
 /// 更新数据至源
 /// </summary>
 public async Task UpdateToSourceAsync()
 {
     try {
         await _transaction.CommitAsync();
     }
     catch (Exception) {
         throw new StorageFileIOException();
     }
     finally {
         _transaction = DataBase.BeginTransaction();
     }
 }
예제 #3
0
        public async Task <string> ExecSqlAsync(ArrayList sqlList)
        {
            string result;

            using (this.conn = new SQLiteConnection(this._connectionString))
            {
                bool flag = this.conn.State != ConnectionState.Open;
                if (flag)
                {
                    await this.conn.OpenAsync();
                }
                SQLiteTransaction sqliteTransaction = this.conn.BeginTransaction();
                try
                {
                    this.cmd = new SQLiteCommand
                    {
                        CommandType = CommandType.Text,
                        Connection  = this.conn
                    };
                    foreach (object obj in sqlList)
                    {
                        string commandText = (string)obj;
                        this.cmd.CommandText = commandText;
                        await this.cmd.ExecuteNonQueryAsync();
                    }
                    await sqliteTransaction.CommitAsync();

                    result = string.Empty;
                }
                catch (Exception ex)
                {
                    await sqliteTransaction.RollbackAsync();

                    result = ex.Message;
                }
                finally
                {
                    await sqliteTransaction.DisposeAsync();
                }
            }
            return(result);
        }