public void Delete(PrimaryKeysRange keysRange) { var filter = Builders <BsonDocument> .Filter.Gte("_id", keysRange.From) & Builders <BsonDocument> .Filter.Lte("_id", keysRange.To); _collection.DeleteMany(filter); }
public void Delete(PrimaryKeysRange keysRange) { var deleteQuery = $@"DELETE FROM {_dbName}.{_tableName} WHERE {_columns[0].Name} >= @from AND {_columns[0].Name} <= @to;"; using (var connection = (MySqlConnection)_connection.Clone()) { connection.Open(); var cmd = new MySqlCommand(deleteQuery, connection); cmd.Parameters.Add("@from", MySqlDbType.Int32).Value = keysRange.From; cmd.Parameters.Add("@to", MySqlDbType.Int32).Value = keysRange.To; cmd.ExecuteNonQuery(); } }
public DataSet Select(PrimaryKeysRange keysRange) { var filter = Builders <BsonDocument> .Filter.Gte("_id", keysRange.From) & Builders <BsonDocument> .Filter.Lte("_id", keysRange.To); var docs = _collection.FindSync(filter).ToEnumerable(); var result = new DataSet(_columns); foreach (var doc in docs) { var values = new object[doc.ElementCount]; for (int i = 0; i < _columns.Length; i++) { var column = _columns[i]; object value; switch (column.Type) { case DataType.Number: value = doc.GetValue(column.Name).AsInt32; break; case DataType.String: value = doc.GetValue(column.Name).AsString; break; case DataType.Boolean: value = doc.GetValue(column.Name).AsBoolean; break; case DataType.Date: value = doc.GetValue(column.Name).AsBsonDateTime.ToUniversalTime(); break; default: value = null; break; } values[i] = value; } result.AddRow(values); } return(result); }
public DataSet Select(PrimaryKeysRange keysRange) { using (var connection = OpenConnection()) { var query = $"SELECT * FROM {_dbName}.{_tableName} WHERE _id >= @from AND _id <= @to"; var cmd = new MySqlCommand(query, connection); cmd.Parameters.Add("@from", MySqlDbType.Int32).Value = keysRange.From; cmd.Parameters.Add("@to", MySqlDbType.Int32).Value = keysRange.To; var dataSet = new DataSet(_columns); var reader = cmd.ExecuteReader(); while (reader.Read()) { var values = new object[_columns.Length]; for (int i = 0; i < _columns.Length; i++) { var column = _columns[i]; object value = null; switch (column.Type) { case DataType.Number: value = reader.GetInt32(column.Name); break; case DataType.String: value = reader.GetString(column.Name); break; case DataType.Date: value = reader.GetDateTime(column.Name); break; case DataType.Boolean: value = reader.GetBoolean(column.Name); break; } values[i] = value; } dataSet.AddRow(values); } return(dataSet); } }
public void Update(PrimaryKeysRange keysRange, DataRow row) { var updateQuery = $@"UPDATE {_dbName}.{_tableName} "; updateQuery += $"SET {string.Join(",", row.Columns.Skip(1).Select((column, i) => $"{column.Name} = {ToMySqlValue(row.Values[i+1], column)}"))} "; updateQuery += $"WHERE {_columns[0].Name} >= @from AND {_columns[0].Name} <= @to;"; using (var connection = (MySqlConnection)_connection.Clone()) { connection.Open(); var cmd = new MySqlCommand(updateQuery, connection); cmd.Parameters.Add("@from", MySqlDbType.Int32).Value = keysRange.From; cmd.Parameters.Add("@to", MySqlDbType.Int32).Value = keysRange.To; cmd.ExecuteNonQuery(); } }
public void Update(PrimaryKeysRange keysRange, DataRow row) { var filter = Builders <BsonDocument> .Filter.Gte("_id", keysRange.From) & Builders <BsonDocument> .Filter.Lte("_id", keysRange.To); var updates = new UpdateDefinition <BsonDocument> [row.Columns.Length - 1]; for (int i = 0, j = 0; i < row.Columns.Length; i++) { var column = row.Columns[i]; if (column.Name != "_id") { updates[j++] = Builders <BsonDocument> .Update.Set(column.Name, row.Values[i]); } } _collection.UpdateMany(filter, Builders <BsonDocument> .Update.Combine(updates)); }
public void Delete(PrimaryKeysRange keysRange) { Thread.Sleep(_rand.Next(1, _timeout)); }
public void Update(PrimaryKeysRange keysRange, DataRow row) { Thread.Sleep(_rand.Next(1, _timeout)); }
public DataSet Select(PrimaryKeysRange keysRange) { Thread.Sleep(_rand.Next(1, _timeout)); return(new DataSet(new DataColumn[0])); }
public void Delete(PrimaryKeysRange keysRange) { throw new NotImplementedException(); }
public void Update(PrimaryKeysRange keysRange, DataRow row) { throw new NotImplementedException(); }
public DataSet Select(PrimaryKeysRange keysRange) { Thread.Sleep(1); return(new DataSet(new DataColumn[0])); }