/// <summary> /// Returns the dataAdapter for the selected table /// </summary> /// <param name="table"></param> /// <returns></returns> public OleDbDataAdapter GetAdapter(BMTable table) { if (adapters[(int)table] == null) { ConstructAdapter(table); } return(adapters[(int)table]); }
private void ConstructAdapter(BMTable table) { int t = (int)table; //SELECT COMMAND var select = $"SELECT * FROM {tableNamesSafe[t]}"; OleDbDataAdapter adapter = new OleDbDataAdapter(select, connection); if (table != BMTable.IntermediateData && table != BMTable.ReceivedData) { //INSERT COMMAND StringBuilder columnsB = new StringBuilder(); StringBuilder paramsB = new StringBuilder(); for (int i = 0; i < columnNames[t].Length; i++) { columnsB.Append(columnNamesSafe[t][i] + ","); paramsB.Append("@" + columnNames[t][i] + ","); } columnsB.Remove(columnsB.Length - 1, 1); paramsB.Remove(paramsB.Length - 1, 1); var insert = $"INSERT INTO {tableNamesSafe[t]} ({columnsB.ToString()}) VALUES ({paramsB.ToString()});"; var ins = new OleDbCommand(insert, connection); SetParams(t, ins); adapter.InsertCommand = ins; } adapters[(int)table] = adapter; void SetParams(int DBTable, OleDbCommand cmd) { for (int i = 0; i < columnNames[DBTable].Length; i++) { var parameter = cmd.Parameters.Add("@" + columnNames[DBTable][i], columnTypes[DBTable][i]); parameter.SourceColumn = columnNames[DBTable][i]; parameter.IsNullable = false; } } }
/// <summary> /// Returns OleDBCommand to remove all entries from a given table /// </summary> /// <returns></returns> public OleDbCommand GetClearCommand(BMTable table) { return(new OleDbCommand($"DELETE FROM {tableNamesSafe[(int)table]}; ", connection)); }
/// <summary> /// Returns the name of the given table. /// </summary> /// <param name="table"></param> /// <returns></returns> public string TableName(BMTable table) { return(tableNames[(int)table]); }