/// <summary> /// </summary> public override DataTable GetDataTableBySelection(string menu, string selection, int numberOfLevels, string sql, DatabaseParameterCollection parameters) { DataTable dataTable = new System.Data.DataTable(); using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand selectCommand = new SqlCommand(sql, connection); selectCommand.Parameters.AddRange( new SqlParameter[] { new SqlParameter("@menu", SqlDbType.VarChar, parameters["menu"].Size) { Value = menu }, new SqlParameter("@selection", SqlDbType.VarChar, parameters["selection"].Size) { Value = selection }, new SqlParameter("@levels", SqlDbType.Int, parameters["levels"].Size) { Value = numberOfLevels } } ); new SqlDataAdapter(selectCommand).Fill(dataTable); } return(dataTable); }
/// <summary> /// </summary> public override DataTable GetDataTableBySelection(string menu, string selection, int numberOfLevels, string sql, DatabaseParameterCollection parameters) { log.DebugFormat("Getting menu for menu, selection, numberOfLevels: {0}, {1}, {2}", menu, selection, numberOfLevels); log.DebugFormat("SQL: {0}", sql); DataTable dataTable = new DataTable(); using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); OracleCommand command = new OracleCommand(sql, connection) { BindByName = true }; command.Parameters.Add("levels", OracleDbType.Int32, parameters["levels"].Size, numberOfLevels, ParameterDirection.Input); command.Parameters.Add("menu", OracleDbType.Varchar2, parameters["menu"].Size, menu, ParameterDirection.Input); command.Parameters.Add("selection", OracleDbType.Varchar2, parameters["selection"].Size, selection, ParameterDirection.Input); new OracleDataAdapter(command).Fill(dataTable); } return(dataTable); }
public override System.Data.DataTable GetDataTableBySelection(string menu, string selection, int numberOfLevels, string sql, DatabaseParameterCollection parameters) { DataTable dataTable = new DataTable(); using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); string pattern = ParameterChar + "[a-z]*"; int c = 0; List <OleDbParameter> values = new List <OleDbParameter>(); foreach (Match m in Regex.Matches(sql, pattern)) { object value; if (m.Value == (ParameterChar + "menu")) { value = menu; } else if (m.Value == (ParameterChar + "selection")) { value = selection; } else if (m.Value == (ParameterChar + "levels")) { value = numberOfLevels; } else { value = null; } values.Add(new OleDbParameter("paramOleDb" + (c++), value)); } sql = Regex.Replace(sql, pattern, "?"); OleDbCommand command = new OleDbCommand(sql, connection); command.Parameters.AddRange(values.ToArray()); new OleDbDataAdapter(command).Fill(dataTable); } return(dataTable); }
/// <summary> /// Retrieves data from database for a given SQL. The method must be implemented in the derived class. /// Items must be returned in such an order, that a parent is before a child of that item. /// </summary> /// <param name="menu">The menu for which to retrieve data</param> /// <param name="selection">The selection for which to retrieve data</param> /// <param name="numberOfLevels">Number of levels to retrieve from the database</param> /// <param name="sql">The SQL supplied by the base class</param> /// <param name="parameters">List of parameters</param> /// <returns></returns> /// Parameters are actually accessible. They are included for implicit documentation. public abstract DataTable GetDataTableBySelection(string menu, string selection, int numberOfLevels, string sql, DatabaseParameterCollection parameters);
public override System.Data.DataTable GetDataTableBySelection(string menu, string selection, int numberOfLevels, string sql, DatabaseParameterCollection parameters) { //TODO: Connect to Sybase, extract and return data. throw new NotImplementedException(); }