public string CsBuilder(DataModel model) { //SqlConnection myConnection = new SqlConnection(); SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); builder.UserID = model.CsDTO.UserID; builder.Password = model.CsDTO.Password; builder.InitialCatalog = model.CsDTO.Database; builder.DataSource = model.CsDTO.Server; builder.ConnectTimeout = 30; return builder.ConnectionString; }
/// <summary> /// Return the data given in the model.Query /// </summary> /// <param name="model"></param> /// <returns>List of Key/Value pairs</returns> public List<Dictionary<string, object>> GetData(DataModel model) { string query = model.Query; ArrayList al = new ArrayList(); using (SqlConnection sqlConnect = new SqlConnection()) { sqlConnect.ConnectionString = new ConnectionStringBuilder().CsBuilder(model); SqlCommand command = new SqlCommand(query, sqlConnect); sqlConnect.Open(); SqlDataReader reader = command.ExecuteReader(); var columns = new List<string>(); for (int i = 0; i < reader.FieldCount; i++) { columns.Add(reader.GetName(i)); } var list = new List<Dictionary<string, object>>(); while (reader.Read()) { object[] values = new object[reader.FieldCount]; reader.GetValues(values); var item = new Dictionary<string, object>(); for (int i = 0; i < columns.Count; i++) { var columnName = columns[i]; var value = values[i]; item[columnName] = value; } list.Add(item); } reader.Close(); return list; } }