I have the following code,
I am sending an array of data to a web service, the response from the web service gets displayed currently in a web form as shown below.
private void Form1_Load(object sender, EventArgs e)
{
int ASent;
int CSent;
webservice.Results returned = convert();
txtResult.Text = System.Convert.ToString(returned.status);
txtMoreRes1.Text = returned.errorDetails[0].errorDetails;
txtMoreRes2.Text = returned.errorDetails[1].errorDetails;
txtMoreRes3.Text = returned.errorDetails[2].errorDetails;
txtMoreRes4.Text = returned.errorDetails[3].errorDetails;
date.Text = System.Convert.ToString(DateTime.Today);
time.Text = System.Convert.ToString(DateTime.Now.TimeOfDay);
}
What I now need is for the results 'returned' to be converted from an xml response into a .csv file. Then have the code save that .csv to a location on the C drive. How can I change my co开发者_JS百科de to do this?
Thanks for your time!
StringBuilder SbCSV = new StringBuilder();
int ActualSent;
int CommitmentSent;
webservice.summaryResults returned = convert(out ActualSent, out CommitmentSent);
//txtResult.Text = System.Convert.ToString(returned.status);
SbCSV.Append(System.Convert.ToString(returned.status));
//txtMoreRes1.Text = returned.errorDetails[0].errorDetails;
SbCSV.Append("," + returned.errorDetails[0].errorDetails);
//txtMoreRes2.Text = returned.errorDetails[1].errorDetails;
SbCSV.Append("," + returned.errorDetails[1].errorDetails);
// Similary ...
txtMoreRes3.Text = returned.errorDetails[2].errorDetails;
txtMoreRes4.Text = returned.errorDetails[3].errorDetails;
actualSum.Text = System.Convert.ToString(returned.actualSum);
commitmentSum.Text = System.Convert.ToString(returned.commitmentSum);
date.Text = System.Convert.ToString(DateTime.Today);
time.Text = System.Convert.ToString(DateTime.Now.TimeOfDay);
actualsumsent.Text = ActualSent.ToString();
commitmentsumsent.Text = CommitmentSent.ToString();
errorposition1.Text = System.Convert.ToString(returned.errorDetails[0].errorPosition);
errorposition2.Text = System.Convert.ToString(returned.errorDetails[1].errorPosition);
errorposition3.Text = System.Convert.ToString(returned.errorDetails[2].errorPosition);
errorposition4.Text = System.Convert.ToString(returned.errorDetails[3].errorPosition);
TextWriter Tw = new StreamWriter("Your_FilePath_Name.csv");
Tw.Write(SbCSV.ToString());
Tw.Close();
Tw.Dispose();
You could also use FileHelpers to do this stuff. You must create a class named MyClass with attributes that match your .csv format (each column = one attribute) you build a List of such class objects and convert to csv this way using FileHelper :
FileHelperEngine engine = new FileHelperEngine(typeof(MyClass));
MyClass[] res = null; //Fill your array here from your code.
// To Write Use:
engine.WriteFile("FileOut.txt", res);
You can also do this with an XML Transformation.
精彩评论