public static DataTable ExecuteDataTable(this DbConnection connection, string sql) { using var command = connection.CreateCommand(); using var adapter = new ClickHouseDataAdapter(); command.CommandText = sql; adapter.SelectCommand = command; var dataTable = new DataTable(); adapter.Fill(dataTable); return(dataTable); }
public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection, CommandParameterCollection parameters) { ClickHouseDataAdapter clickHouseDataAdapter = new ClickHouseDataAdapter(); var command = connection.CreateCommand() as ClickHouseCommand; foreach (CommandParameter p in parameters) { selectCommand = selectCommand.Replace($"@{p.Name}", $"{{{p.Name}:{(ClickHouseTypeCode)p.DataType}}}"); command.AddParameter(p.Name, ((ClickHouseTypeCode)p.DataType).ToString(), p.Value); } command.CommandText = selectCommand; clickHouseDataAdapter.SelectCommand = command; return(clickHouseDataAdapter); }
public override DbDataAdapter GetAdapter(string selectCommand, DbConnection connection, CommandParameterCollection parameters) { ClickHouseDataAdapter adapter = new ClickHouseDataAdapter(); adapter.SelectCommand = new ClickHouseCommand(connection as ClickHouseConnection); adapter.SelectCommand.CommandText = selectCommand; foreach (CommandParameter p in parameters) { ClickHouseDbParameter parameter = new ClickHouseDbParameter(); adapter.SelectCommand.Parameters.Add(p.Name); parameter.Value = p.Value; } return(adapter); }
public void DataAdapterShouldFillSingleValue(string sql) { using var adapter = new ClickHouseDataAdapter(); using var command = connection.CreateCommand(); command.CommandText = sql; adapter.SelectCommand = command; var dataTable = new DataTable(); adapter.Fill(dataTable); Assert.AreEqual(1, dataTable.Rows.Count); Assert.AreEqual(1, dataTable.Columns.Count); Assert.AreEqual("col", dataTable.Columns[0].ColumnName); }
public void DataAdapterShouldFillDataTable() { using var connection = TestUtilities.GetTestClickHouseConnection(); using var adapter = new ClickHouseDataAdapter(); using var command = connection.CreateCommand(); command.CommandText = "SELECT number, 'a' as string FROM system.numbers LIMIT 100"; adapter.SelectCommand = command; var dataTable = new DataTable(); adapter.Fill(dataTable); Assert.AreEqual(100, dataTable.Rows.Count); Assert.AreEqual(2, dataTable.Columns.Count); }
public void DataAdapterShouldFillDataSet() { using var adapter = new ClickHouseDataAdapter(); using var command = connection.CreateCommand(); command.CommandText = "SELECT number, 'a' as string FROM system.numbers LIMIT 100"; adapter.SelectCommand = command; var dataSet = new DataSet(); adapter.Fill(dataSet); Assert.AreEqual(1, dataSet.Tables.Count); Assert.AreEqual(100, dataSet.Tables[0].Rows.Count); Assert.AreEqual(2, dataSet.Tables[0].Columns.Count); }
private static DataTable DescribeTables(DbConnection connection, string database) { var command = connection.CreateCommand(); var query = new StringBuilder("show tables in "); query.Append(database); command.CommandText = query.ToString(); DataTable result = new DataTable(); using (var adapter = new ClickHouseDataAdapter()) { adapter.SelectCommand = command; adapter.Fill(result); } return(result); }