protected void exportToCSV_Click(object sender, EventArgs e) { if (exportToCSV.Visible && ViewState["data"] != null) { StringBuilder sb = new StringBuilder(); DataTable dt = ((DataSet)ViewState["data"]).Tables[0]; IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { IEnumerable<string> fields = row.ItemArray.Select(field => string.Concat("\"", field.ToString().Replace("\"", "\"\""), "\"")); sb.AppendLine(string.Join(",", fields)); } Response.Clear(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "inline;filename=TeachersBySchoolAndGrade.csv"); Response.AddHeader("Content-Type", "application/Excel"); Response.ContentType = "text/csv"; Response.Write(sb); Response.Flush(); Response.End(); } }
“No problem can be solved from the same level of consciousness that created it.” Albert Einstein (1879-1955)
Tuesday, 30 October 2018
C# Export DataSet to CSV and Download
Monday, 22 October 2018
VSCode Detects lof of Changes (5K) - Exclude files/folder from Git
1. git rev-parse --show-toplevel
2. delete .git folder
1. add .gitignore file to the project
2. add the folder/module name int he added file (e.g. /src/app.js, /node_modules)
2. delete .git folder
1. add .gitignore file to the project
2. add the folder/module name int he added file (e.g. /src/app.js, /node_modules)
Wednesday, 17 October 2018
Independent Redux
Independent Redux const redux = require ('redux'); // using node
const createStore = redux.createStore;
// initialize the state
const initialState = { counter: 0 }
// REDUCER
const rootReducer = (state= initialState, action) => { // set the initial
state
if (action.type === 'INC_COUNTER')
return {
...state, // copy the old state
- prevent changing the original state
counter: state.counter + 1 // read the old state and update it to a new object
};
if (action.type === 'ADD_COUNTER')
return {
...state, // copy the old state
- prevent changing the original state
counter: state.counter + action.value // read the old state
and update it to a new object
};
return state; // finally return the
state
}
// STORE
const store = createStore(rootReducer);
console.log(store.getState());
// SUBSCRIPTION - execute when state is updated - when
action reach to reducer
store.subscribe (() => { console.log('[Subscription]', store.getState()); });
// DISPATCHER - Action
store.dispatch({type: 'INC_COUNTER'}); // for convention, use uupercase type
store.dispatch({type: 'ADD_COUNTER', value: 10}); // property name (value) is up to us
console.log(store.getState());
Sunday, 16 September 2018
Change the Order of Windows app Icon Overally
- Run “regedit” and locate: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Explorer\ShellIconOverlayIdentifiers\"
- rename the folders in order you want (trick use 01_, 02_ as prefixes)
- terminate explorer.exe from task manager and re-run explorer.exe task.
JQuery Datatable Useful Tag Attributes
Set page length
data-page-length = "20"
Set default order column
data-order='[[0, "desc"]]'
Compact data-table
class = "display compact"
data-page-length = "20"
Set default order column
data-order='[[0, "desc"]]'
Compact data-table
class = "display compact"
Sunday, 9 September 2018
Opening Office apps Fails when run from Scheduled Task on Windows Server
When running under user account while the user is logged in, the task runs fine as it has access to the logged in "user desktop-profile". But when task runs under a service account as a job, it fails because the server COM issue which cannot access to "system desktop-profile". To fix the issue, add the following directory:
c:\windows\syswow64\config\systemprofile\desktop
c:\windows\syswow64\config\systemprofile\desktop
Monday, 6 August 2018
C# REST Server POST and Get Response
async Task Main()
{
string outputfile = "output.csv";
File.Delete (outputfile);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(URL);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
startDate = "7/1/2018",
endDate = "6/30/2019",
codes = new string[] { "value1", "value2" },
skus= "",
returnCSV = 1
});
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
using (StreamWriter sw = new StreamWriter(outputfile))
sw.Write(await streamReader.ReadToEndAsync());
}
}
{
string outputfile = "output.csv";
File.Delete (outputfile);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(URL);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
startDate = "7/1/2018",
endDate = "6/30/2019",
codes = new string[] { "value1", "value2" },
skus= "",
returnCSV = 1
});
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
using (StreamWriter sw = new StreamWriter(outputfile))
sw.Write(await streamReader.ReadToEndAsync());
}
}
Subscribe to:
Posts (Atom)
Analysis Service in Power BI Report Server
We couldn’t connect to the Analysis Services server. Make sure you’ve entered the connection string correctly... link
-
//convert BASE64 string to Byte{} array function base64ToArrayBuffer(base64) { var binaryString = window.atob(base64); var binar...
-
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter(); htmlToPdf.PageFooterHtml = @"<div style='text-align:right; font-s...
-
static void Main(string[] args) { // create a dummy list List<string> data = GetTheListOfData(); // split the lis...